package org.atricore.idbus.capabilities.oauth2.main.sso; import org.atricore.idbus.capabilities.sts.main.AbstractSecurityTokenAuthenticator; import org.atricore.idbus.kernel.main.authn.Credential; import org.atricore.idbus.kernel.main.authn.exceptions.SSOAuthenticationException; import org.oasis_open.docs.wss._2004._01.oasis_200401_wss_wssecurity_secext_1_0.BinarySecurityTokenType; import org.oasis_open.docs.wss._2004._01.oasis_200401_wss_wssecurity_secext_1_0.PasswordString; import javax.xml.namespace.QName; /** * @author <a href="mailto:gbrigandi@atricore.org">Gianluca Brigandi</a> */ public class OAuth2AccessTokenAuthenticator extends AbstractSecurityTokenAuthenticator { private static final String SCHEME_NAME = "oauth2-authentication"; public OAuth2AccessTokenAuthenticator() { super(); setScheme(SCHEME_NAME); } @Override protected Credential[] getCredentials(Object requestToken) throws SSOAuthenticationException { PasswordString accessToken = (PasswordString) requestToken; String oauth2AccessToken = accessToken.getValue(); Credential oauth2Credential = getAuthenticator().newCredential(getScheme(), "oauth2AccessToken", oauth2AccessToken); return new Credential[] {oauth2Credential}; } public boolean canAuthenticate(Object requestToken) { if (requestToken instanceof PasswordString){ return true; } return false; } }