1 package com.atlassian.security.auth.trustedapps;
2
3 import java.io.FileNotFoundException;
4 import java.io.IOException;
5 import java.io.InputStream;
6 import java.io.InputStreamReader;
7 import java.net.MalformedURLException;
8 import java.net.URL;
9 import java.net.URLConnection;
10
11
12
13
14 public class URLApplicationRetriever implements ApplicationRetriever
15 {
16 private static final String CERTIFICATE_URL_PATH = "/admin/appTrustCertificate";
17
18 private final String baseUrl;
19 private final EncryptionProvider encryptionProvider;
20
21 public URLApplicationRetriever(String baseUrl, EncryptionProvider encryptionProvider)
22 {
23 Null.not("baseUrl", baseUrl);
24 Null.not("encryptionProvider", encryptionProvider);
25
26 this.baseUrl = baseUrl;
27 this.encryptionProvider = encryptionProvider;
28 }
29
30 public Application getApplication() throws RetrievalException
31 {
32 final String certUrl = baseUrl + CERTIFICATE_URL_PATH;
33 try
34 {
35 final URLConnection con = new URL(certUrl).openConnection();
36 con.connect();
37 final InputStream in = con.getInputStream();
38 final InputStreamReader reader = new InputStreamReader(in);
39 final ReaderApplicationRetriever retriever = new ReaderApplicationRetriever(reader, encryptionProvider);
40 return retriever.getApplication();
41 }
42 catch (FileNotFoundException e)
43 {
44 throw new ApplicationNotFoundException(e);
45 }
46 catch (MalformedURLException e)
47 {
48 throw new RemoteSystemNotFoundException(e);
49 }
50 catch (IOException e)
51 {
52 throw new RemoteSystemNotFoundException(e);
53 }
54 }
55 }