125 String authorizationState = request.getParameter(Configuration.OAUTH_STATE);
126 final String stateSession = session != null ? (String) session.getAttribute(Configuration.SESSION_AUTH_STATE) : null;
127 if (!StringHelper.equals(stateSession, authorizationState)) {
128 log.error(
"Login failed, oxTrust wasn't allowed to access user data");
140 if (oAuthClientPassword != null) {
142 oAuthClientPassword = StringEncrypter.defaultInstance().decrypt(oAuthClientPassword, Configuration.instance().getCryptoPropertyValue());
143 }
catch (EncryptionException ex) {
144 log.error(
"Failed to decrypt property: " + Configuration.OAUTH_PROPERTY_CLIENT_PASSWORD, ex);
148 String scopes =
getParameter(request, Configuration.OAUTH_SCOPE);
149 log.trace(
"scopes : " + scopes);
152 log.trace(
"Getting access token");
153 TokenClient tokenClient1 =
new TokenClient(oAuthTokenUrl);
156 TokenResponse tokenResponse = tokenClient1.execAuthorizationCode(authorizationCode, redirectURL, oAuthClientId, oAuthClientPassword);
157 if (tokenResponse == null) {
158 log.error(
"Get empty token response. User can't log into application");
162 log.trace(
"tokenResponse : " + tokenResponse);
163 log.trace(
"tokenResponse.getErrorType() : " + tokenResponse.getErrorType());
165 String accessToken = tokenResponse.getAccessToken();
166 String idToken = tokenResponse.getIdToken();
167 log.trace(
"accessToken : " + accessToken);
168 log.trace(
"idToken : " + idToken);
173 jwt = Jwt.parse(idToken);
174 }
catch (InvalidJwtException ex) {
175 log.error(
"Failed to parse id_token");
180 String nonceResponse = (String) jwt.getClaims().getClaim(JwtClaimName.NONCE);
181 final String nonceSession = session != null ? (String) session.getAttribute(Configuration.SESSION_AUTH_NONCE) : null;
182 if (!StringHelper.equals(nonceSession, nonceResponse)) {
183 log.error(
"User info response : nonce is not matching.");
187 log.info(
"Session validation successful. User is logged in");
188 UserInfoClient userInfoClient =
new UserInfoClient(oAuthUserInfoUrl);
190 UserInfoResponse userInfoResponse = userInfoClient.execUserInfo(accessToken);
191 if (userInfoResponse == null) {
192 log.error(
"Get empty user info response. User can't log into application");
196 OAuthData oAuthData =
new OAuthData();
197 oAuthData.setHost(oAuthHost);
199 List<String> uidValues = userInfoResponse.getClaims().get(JwtClaimName.USER_NAME);
200 if ((uidValues == null) || (uidValues.size() == 0)) {
201 log.error(
"User infor response doesn't contains uid claim");
205 oAuthData.setUserUid(uidValues.get(0));
206 oAuthData.setAccessToken(accessToken);
207 oAuthData.setAccessTokenExpirationInSeconds(tokenResponse.getExpiresIn());
208 oAuthData.setScopes(scopes);
209 oAuthData.setIdToken(idToken);
211 log.trace(
"User uid: " + oAuthData.getUserUid());
final String constructRedirectUrl(final HttpServletRequest request)
Definition: AbstractOAuthFilter.java:21
final Log log
Definition: AbstractConfigurationFilter.java:24
static String getParameter(final HttpServletRequest request, final String parameter)
Definition: AbstractOAuthFilter.java:42
String getOAuthHost(String oAuthAuthorizeUrl)
Definition: OAuthValidationFilter.java:215
final String getPropertyFromInitParams(final FilterConfig filterConfig, final String propertyName, final String defaultValue)
Definition: AbstractConfigurationFilter.java:35