use of java.net.PasswordAuthentication in project GeoGig by boundlessgeo.
the class RemoteUtils method newRemote.
/**
* Constructs an interface to allow access to a remote repository.
*
* @param injector a Guice injector for the new repository
* @param remoteConfig the remote to connect to
* @param localRepository the local repository
* @return an {@link Optional} of the interface to the remote repository, or
* {@link Optional#absent()} if a connection to the remote could not be established.
*/
public static Optional<IRemoteRepo> newRemote(Context injector, Remote remoteConfig, Repository localRepository, DeduplicationService deduplicationService) {
try {
URI fetchURI = URI.create(remoteConfig.getFetchURL());
String protocol = fetchURI.getScheme();
IRemoteRepo remoteRepo = null;
if (protocol == null || protocol.equals("file")) {
String filepath = new URL(remoteConfig.getFetchURL()).getFile();
filepath = URLDecoder.decode(filepath, Charsets.UTF_8.displayName());
if (remoteConfig.getMapped()) {
remoteRepo = new LocalMappedRemoteRepo(injector, new File(filepath), localRepository);
} else {
remoteRepo = new LocalRemoteRepo(injector, new File(filepath), localRepository);
}
} else if (protocol.equals("http") || protocol.equals("https")) {
final String username = remoteConfig.getUserName();
final String password = remoteConfig.getPassword();
if (username != null && password != null) {
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, Remote.decryptPassword(password).toCharArray());
}
});
} else {
Authenticator.setDefault(null);
}
if (remoteConfig.getMapped()) {
remoteRepo = new HttpMappedRemoteRepo(fetchURI.toURL(), localRepository);
} else {
remoteRepo = new HttpRemoteRepo(fetchURI.toURL(), localRepository, deduplicationService);
}
} else {
throw new UnsupportedOperationException("Only file and http remotes are currently supported.");
}
return Optional.fromNullable(remoteRepo);
} catch (Exception e) {
// Invalid fetch URL
Throwables.propagate(e);
}
return Optional.absent();
}
use of java.net.PasswordAuthentication in project ignite by apache.
the class AgentLauncher method main.
/**
* @param args Args.
*/
public static void main(String[] args) throws Exception {
log.info("Starting Apache Ignite Web Console Agent...");
final AgentConfiguration cfg = new AgentConfiguration();
JCommander jCommander = new JCommander(cfg);
String osName = System.getProperty("os.name").toLowerCase();
jCommander.setProgramName("ignite-web-agent." + (osName.contains("win") ? "bat" : "sh"));
try {
jCommander.parse(args);
} catch (ParameterException pe) {
log.error("Failed to parse command line parameters: " + Arrays.toString(args), pe);
jCommander.usage();
return;
}
String prop = cfg.configPath();
AgentConfiguration propCfg = new AgentConfiguration();
try {
File f = AgentUtils.resolvePath(prop);
if (f == null)
log.warn("Failed to find agent property file: {}", prop);
else
propCfg.load(f.toURI().toURL());
} catch (IOException e) {
if (!AgentConfiguration.DFLT_CFG_PATH.equals(prop))
log.warn("Failed to load agent property file: " + prop, e);
}
cfg.merge(propCfg);
if (cfg.help()) {
jCommander.usage();
return;
}
System.out.println();
System.out.println("Agent configuration:");
System.out.println(cfg);
System.out.println();
if (cfg.tokens() == null) {
String webHost;
try {
webHost = new URI(cfg.serverUri()).getHost();
} catch (URISyntaxException e) {
log.error("Failed to parse Ignite Web Console uri", e);
return;
}
System.out.println("Security token is required to establish connection to the web console.");
System.out.println(String.format("It is available on the Profile page: https://%s/profile", webHost));
String tokens = String.valueOf(readPassword("Enter security tokens separated by comma: "));
cfg.tokens(Arrays.asList(tokens.trim().split(",")));
}
URI uri = URI.create(cfg.serverUri());
// Create proxy authenticator using passed properties.
switch(uri.getScheme()) {
case "http":
case "https":
final String username = System.getProperty(uri.getScheme() + ".proxyUsername");
final char[] pwd = System.getProperty(uri.getScheme() + ".proxyPassword", "").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, pwd);
}
});
break;
default:
}
IO.Options opts = new IO.Options();
opts.path = "/agents";
// Workaround for use self-signed certificate
if (Boolean.getBoolean("trust.all")) {
SSLContext ctx = SSLContext.getInstance("TLS");
// Create an SSLContext that uses our TrustManager
ctx.init(null, getTrustManagers(), null);
opts.sslContext = ctx;
}
final Socket client = IO.socket(uri, opts);
final RestExecutor restExecutor = new RestExecutor(cfg.nodeUri());
try {
final ClusterListener clusterLsnr = new ClusterListener(client, restExecutor);
final DemoListener demoHnd = new DemoListener(client, restExecutor);
Emitter.Listener onConnect = new Emitter.Listener() {
@Override
public void call(Object... args) {
log.info("Connection established.");
JSONObject authMsg = new JSONObject();
try {
authMsg.put("tokens", toJSON(cfg.tokens()));
authMsg.put("disableDemo", cfg.disableDemo());
String clsName = AgentLauncher.class.getSimpleName() + ".class";
String clsPath = AgentLauncher.class.getResource(clsName).toString();
if (clsPath.startsWith("jar")) {
String manifestPath = clsPath.substring(0, clsPath.lastIndexOf('!') + 1) + "/META-INF/MANIFEST.MF";
Manifest manifest = new Manifest(new URL(manifestPath).openStream());
Attributes attr = manifest.getMainAttributes();
authMsg.put("ver", attr.getValue("Implementation-Version"));
authMsg.put("bt", attr.getValue("Build-Time"));
}
client.emit("agent:auth", authMsg, new Ack() {
@Override
public void call(Object... args) {
if (args != null) {
if (args[0] instanceof String) {
log.error((String) args[0]);
System.exit(1);
}
if (args[0] == null && args[1] instanceof JSONArray) {
try {
List<String> activeTokens = fromJSON(args[1], List.class);
if (!F.isEmpty(activeTokens)) {
Collection<String> missedTokens = cfg.tokens();
cfg.tokens(activeTokens);
missedTokens.removeAll(activeTokens);
if (!F.isEmpty(missedTokens)) {
String tokens = F.concat(missedTokens, ", ");
log.warn("Failed to authenticate with token(s): {}. " + "Please reload agent archive or check settings", tokens);
}
log.info("Authentication success.");
clusterLsnr.watch();
return;
}
} catch (Exception e) {
log.error("Failed to authenticate agent. Please check agent\'s tokens", e);
System.exit(1);
}
}
}
log.error("Failed to authenticate agent. Please check agent\'s tokens");
System.exit(1);
}
});
} catch (JSONException | IOException e) {
log.error("Failed to construct authentication message", e);
client.close();
}
}
};
DatabaseListener dbHnd = new DatabaseListener(cfg);
RestListener restHnd = new RestListener(restExecutor);
final CountDownLatch latch = new CountDownLatch(1);
log.info("Connecting to: {}", cfg.serverUri());
client.on(EVENT_CONNECT, onConnect).on(EVENT_CONNECT_ERROR, onError).on(EVENT_ERROR, onError).on(EVENT_DISCONNECT, onDisconnect).on(EVENT_LOG_WARNING, onLogWarning).on(EVENT_CLUSTER_BROADCAST_START, clusterLsnr.start()).on(EVENT_CLUSTER_BROADCAST_STOP, clusterLsnr.stop()).on(EVENT_DEMO_BROADCAST_START, demoHnd.start()).on(EVENT_DEMO_BROADCAST_STOP, demoHnd.stop()).on(EVENT_RESET_TOKENS, new Emitter.Listener() {
@Override
public void call(Object... args) {
String tok = String.valueOf(args[0]);
log.warn("Security token has been reset: {}", tok);
cfg.tokens().remove(tok);
if (cfg.tokens().isEmpty()) {
client.off();
latch.countDown();
}
}
}).on(EVENT_SCHEMA_IMPORT_DRIVERS, dbHnd.availableDriversListener()).on(EVENT_SCHEMA_IMPORT_SCHEMAS, dbHnd.schemasListener()).on(EVENT_SCHEMA_IMPORT_METADATA, dbHnd.metadataListener()).on(EVENT_NODE_VISOR_TASK, restHnd).on(EVENT_NODE_REST, restHnd);
client.connect();
latch.await();
} finally {
restExecutor.stop();
client.close();
}
}
use of java.net.PasswordAuthentication in project cxf by apache.
the class ReferencingAuthenticator method tryWith.
PasswordAuthentication tryWith(Authenticator a) throws Exception {
if (a == null) {
return null;
}
for (final Field f : Authenticator.class.getDeclaredFields()) {
if (!Modifier.isStatic(f.getModifiers())) {
f.setAccessible(true);
Object o = f.get(this);
f.set(a, o);
}
}
final Method m = Authenticator.class.getDeclaredMethod("getPasswordAuthentication");
m.setAccessible(true);
return (PasswordAuthentication) m.invoke(a);
}
use of java.net.PasswordAuthentication in project processdash by dtuma.
the class HttpAuthenticator method getPasswordAuthentication.
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// only handle "server" auth requests (no proxy support for now)
if (getRequestorType() != RequestorType.SERVER)
return null;
// only handle Data Bridge requests (no support for non-PDES servers)
if (getRequestingURL().toString().indexOf("/DataBridge/") == -1 && getRequestingURL().toString().indexOf("/api/v1/") == -1)
return null;
// find out what state we are presently in.
determineCurrentState();
// if we're in a failure state, return no auth data.
if (state == State.Failed || state == State.Cancelled)
return null;
// possibly supply credentials that were stored in the keyring
if (state == State.Keyring) {
char[] password = getPasswordFromKeyring(lastUsername);
if (password != null)
return new PasswordAuthentication(lastUsername, password);
else if (lastUsername != null && lastPassword != null)
return new PasswordAuthentication(lastUsername, mask(lastPassword));
else
state = State.UserEntry1;
}
// create user interface components to prompt for username and password
JTextField username = new JTextField(2);
JPasswordField password = new JPasswordField(2);
FocusAdapter selectAll = new FocusAdapter() {
public void focusGained(FocusEvent e) {
if (e.getComponent() instanceof JTextField) {
((JTextField) e.getComponent()).selectAll();
}
}
};
username.addFocusListener(selectAll);
password.addFocusListener(selectAll);
JComponent focus = username;
if (StringUtils.hasValue(lastUsername)) {
username.setText(lastUsername);
focus = password;
}
JLabel usernameLabel = new JLabel(resources.getString("Username"), SwingConstants.RIGHT);
JLabel passwordLabel = new JLabel(resources.getString("Password"), SwingConstants.RIGHT);
Dimension d = usernameLabel.getPreferredSize();
d.width = Math.max(d.width, passwordLabel.getPreferredSize().width);
usernameLabel.setPreferredSize(d);
passwordLabel.setPreferredSize(d);
// if "remember me" support is enabled, create a checkbox
JCheckBox rememberMe = null;
if (rememberMeDays > 0) {
rememberMe = new JCheckBox(resources.getString("Remember_Me.Prompt"));
rememberMe.setToolTipText(resources.format("Remember_Me.Tooltip_FMT", rememberMeDays));
Font f = rememberMe.getFont();
f = f.deriveFont(f.getSize2D() * 0.8f);
rememberMe.setFont(f);
}
// prompt the user for credentials
final String title = (StringUtils.hasValue(this.title) ? this.title : resources.getString("Title"));
String[] promptLines = resources.formatStrings("Prompt_FMT", getRequestingPrompt());
Object[] prompt = new Object[promptLines.length];
System.arraycopy(promptLines, 0, prompt, 0, prompt.length);
// add a tooltip to the last line of the prompt, indicating the URL
JLabel promptLabel = new JLabel(promptLines[prompt.length - 1]);
promptLabel.setToolTipText(getEffectiveURL());
prompt[prompt.length - 1] = promptLabel;
final Object[] message = new Object[] { prompt, BoxUtils.vbox(5), BoxUtils.hbox(15, usernameLabel, 5, username), BoxUtils.hbox(15, passwordLabel, 5, password), BoxUtils.hbox(BoxUtils.GLUE, rememberMe), new JOptionPaneTweaker.GrabFocus(focus) };
final int[] userChoice = new int[1];
try {
Runnable r = new Runnable() {
public void run() {
userChoice[0] = JOptionPane.showConfirmDialog(parentComponent, message, title, JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
}
};
if (SwingUtilities.isEventDispatchThread())
r.run();
else
SwingUtilities.invokeAndWait(r);
} catch (Exception e) {
}
// record metadata about this password request
lastUrl = getEffectiveURL();
lastTimestamp = System.currentTimeMillis();
lastUsername = username.getText().trim();
prefs.put(prefsKey(LAST_USERNAME), lastUsername);
if (userChoice[0] == JOptionPane.OK_OPTION) {
// if the user entered credentials, return them.
if (rememberMe != null && rememberMe.isSelected())
savePasswordToKeyring(lastUsername, password.getPassword());
lastPassword = mask(password.getPassword());
return new PasswordAuthentication(lastUsername, password.getPassword());
} else {
// if the user cancelled the operation, abort.
state = State.Cancelled;
return null;
}
}
use of java.net.PasswordAuthentication in project cxf by apache.
the class AbstractCodegenMoho method configureProxyServerSettings.
protected void configureProxyServerSettings() throws MojoExecutionException {
Proxy proxy = mavenSession.getSettings().getActiveProxy();
if (proxy != null) {
getLog().info("Using proxy server configured in maven.");
if (proxy.getHost() == null) {
throw new MojoExecutionException("Proxy in settings.xml has no host");
}
if (proxy.getHost() != null) {
System.setProperty(HTTP_PROXY_HOST, proxy.getHost());
}
if (String.valueOf(proxy.getPort()) != null) {
System.setProperty(HTTP_PROXY_PORT, String.valueOf(proxy.getPort()));
}
if (proxy.getNonProxyHosts() != null) {
System.setProperty(HTTP_NON_PROXY_HOSTS, proxy.getNonProxyHosts());
}
if (!StringUtils.isEmpty(proxy.getUsername()) && !StringUtils.isEmpty(proxy.getPassword())) {
final String authUser = proxy.getUsername();
final String authPassword = proxy.getPassword();
Authenticator.setDefault(new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(authUser, authPassword.toCharArray());
}
});
System.setProperty(HTTP_PROXY_USER, authUser);
System.setProperty(HTTP_PROXY_PORT, authPassword);
}
}
}
Aggregations