43 lines
1.2 KiB
Java
43 lines
1.2 KiB
Java
package net.openesb.standalone.security.auth.login;
|
|
|
|
import javax.management.remote.JMXAuthenticator;
|
|
import javax.security.auth.Subject;
|
|
import net.openesb.security.AuthenticationException;
|
|
import net.openesb.security.AuthenticationToken;
|
|
import net.openesb.security.SecurityProvider;
|
|
|
|
/**
|
|
*
|
|
* @author David BRASSELY (brasseld at gmail.com)
|
|
* @author OpenESB Community
|
|
*/
|
|
public class JMXauthenticator implements JMXAuthenticator {
|
|
|
|
private final SecurityProvider securityProvider;
|
|
|
|
public JMXauthenticator(final SecurityProvider securityProvider) {
|
|
this.securityProvider = securityProvider;
|
|
}
|
|
|
|
@Override
|
|
public Subject authenticate(Object credentialsObj) {
|
|
final String [] credentials = (String []) credentialsObj;
|
|
|
|
try {
|
|
return securityProvider.login(new AuthenticationToken() {
|
|
@Override
|
|
public Object getPrincipal() {
|
|
return credentials[0];
|
|
}
|
|
|
|
@Override
|
|
public Object getCredentials() {
|
|
return credentials[1];
|
|
}
|
|
});
|
|
} catch (AuthenticationException ae) {
|
|
throw new SecurityException(ae.getMessage());
|
|
}
|
|
}
|
|
}
|