Spring Boot Authorization Server - Not Redirectly back to configured Redirect URI

Viewed 812

I have recently started to incorporate the Spring authorization server to have 2.1 OAUTH implemented into our project. I have followed the sample provided to set up an authorization server. Also keeping tabs on spring authorization server docs.

I wanted to check the code generated from the authorization server, so tried to test with Postman. When i request the token it does prompts me to log in and after providing the login it goes to an error page instead of redirecting back to the Postman app. There is no error on the console either and from the console, it seems like authentication was sucessfull.

// @formatter:off
@Bean
public RegisteredClientRepository registeredClientRepository(JdbcTemplate jdbcTemplate) {
    RegisteredClient registeredClient = RegisteredClient.withId(UUID.randomUUID().toString())
            .clientId("client")
            .clientSecret("secret")
            .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
            .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
            .authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN)
            .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS)
            .redirectUri("http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc")
            .redirectUri("http://127.0.0.1:8080/authorized")
            .redirectUri("https://oauth.pstmn.io/callback")
            .scope(OidcScopes.OPENID)
            .scope("message.read")
            .scope("message.write")
            .clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())
            .build();

    // Save registered client in db as if in-memory
    return new InMemoryRegisteredClientRepository(registeredClient);
}

I have no clue and there is little help available online as to whats going on here. All configurations are done similart to whats provided in offical samples but for whatever reason its not redirecting and providing the authorization token.

Console logs :

Securing GET /oauth/authorize?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback
2022-01-16 23:34:03.127 DEBUG 7932 --- [nio-9000-exec-1] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to empty SecurityContext
2022-01-16 23:34:03.130 DEBUG 7932 --- [nio-9000-exec-1] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2022-01-16 23:34:03.130 DEBUG 7932 --- [nio-9000-exec-1] o.s.s.w.session.SessionManagementFilter  : Request requested invalid session id 952689217B3FB458A7E2780A4D073B7E
2022-01-16 23:34:03.135 DEBUG 7932 --- [nio-9000-exec-1] o.s.s.w.a.i.FilterSecurityInterceptor    : Failed to authorize filter invocation [GET /oauth/authorize?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback] with attributes [authenticated]
2022-01-16 23:34:03.175 DEBUG 7932 --- [nio-9000-exec-1] o.s.s.w.s.HttpSessionRequestCache        : Saved request http://localhost:9000/oauth/authorize?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback to session
2022-01-16 23:34:03.176 DEBUG 7932 --- [nio-9000-exec-1] o.s.s.web.DefaultRedirectStrategy        : Redirecting to http://localhost:9000/login
2022-01-16 23:34:03.176 DEBUG 7932 --- [nio-9000-exec-1] w.c.HttpSessionSecurityContextRepository : Did not store empty SecurityContext
2022-01-16 23:34:03.178 DEBUG 7932 --- [nio-9000-exec-1] w.c.HttpSessionSecurityContextRepository : Did not store empty SecurityContext
2022-01-16 23:34:03.178 DEBUG 7932 --- [nio-9000-exec-1] s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request
2022-01-16 23:34:03.184 DEBUG 7932 --- [nio-9000-exec-2] o.s.security.web.FilterChainProxy        : Securing GET /login
2022-01-16 23:34:03.184 DEBUG 7932 --- [nio-9000-exec-2] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to empty SecurityContext
2022-01-16 23:34:03.186 DEBUG 7932 --- [nio-9000-exec-2] w.c.HttpSessionSecurityContextRepository : Did not store empty SecurityContext
2022-01-16 23:34:03.187 DEBUG 7932 --- [nio-9000-exec-2] w.c.HttpSessionSecurityContextRepository : Did not store empty SecurityContext
2022-01-16 23:34:03.187 DEBUG 7932 --- [nio-9000-exec-2] s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request
2022-01-16 23:34:08.986 DEBUG 7932 --- [nio-9000-exec-3] o.s.security.web.FilterChainProxy        : Securing POST /login
2022-01-16 23:34:08.986 DEBUG 7932 --- [nio-9000-exec-3] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to empty SecurityContext
2022-01-16 23:34:09.109 DEBUG 7932 --- [nio-9000-exec-3] o.s.s.a.dao.DaoAuthenticationProvider    : Authenticated user
2022-01-16 23:34:09.110 DEBUG 7932 --- [nio-9000-exec-3] .s.ChangeSessionIdAuthenticationStrategy : Changed session id from 5565E84AD4896A2B06605E4AD0673E33
2022-01-16 23:34:09.110 DEBUG 7932 --- [nio-9000-exec-3] o.s.s.w.csrf.CsrfAuthenticationStrategy  : Replaced CSRF Token
2022-01-16 23:34:09.110 DEBUG 7932 --- [nio-9000-exec-3] w.a.UsernamePasswordAuthenticationFilter : Set SecurityContextHolder to UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=user1, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=5565E84AD4896A2B06605E4AD0673E33], Granted Authorities=[ROLE_USER]]
2022-01-16 23:34:09.110 DEBUG 7932 --- [nio-9000-exec-3] o.s.s.web.DefaultRedirectStrategy        : Redirecting to http://localhost:9000/oauth/authorize?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback
2022-01-16 23:34:09.110 DEBUG 7932 --- [nio-9000-exec-3] w.c.HttpSessionSecurityContextRepository : Stored SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=user1, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=5565E84AD4896A2B06605E4AD0673E33], Granted Authorities=[ROLE_USER]]] to HttpSession [org.apache.catalina.session.StandardSessionFacade@33bb0d27]
2022-01-16 23:34:09.111 DEBUG 7932 --- [nio-9000-exec-3] w.c.HttpSessionSecurityContextRepository : Stored SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=user1, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=5565E84AD4896A2B06605E4AD0673E33], Granted Authorities=[ROLE_USER]]] to HttpSession [org.apache.catalina.session.StandardSessionFacade@33bb0d27]
2022-01-16 23:34:09.111 DEBUG 7932 --- [nio-9000-exec-3] s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request
2022-01-16 23:34:09.114 DEBUG 7932 --- [nio-9000-exec-4] o.s.security.web.FilterChainProxy        : Securing GET /oauth/authorize?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback
2022-01-16 23:34:09.114 DEBUG 7932 --- [nio-9000-exec-4] w.c.HttpSessionSecurityContextRepository : Retrieved SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=user1, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=5565E84AD4896A2B06605E4AD0673E33], Granted Authorities=[ROLE_USER]]]
2022-01-16 23:34:09.114 DEBUG 7932 --- [nio-9000-exec-4] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=user1, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=5565E84AD4896A2B06605E4AD0673E33], Granted Authorities=[ROLE_USER]]]
2022-01-16 23:34:09.114 DEBUG 7932 --- [nio-9000-exec-4] o.s.s.w.s.HttpSessionRequestCache        : Loaded matching saved request http://localhost:9000/oauth/authorize?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback
2022-01-16 23:34:09.115 DEBUG 7932 --- [nio-9000-exec-4] o.s.s.w.a.i.FilterSecurityInterceptor    : Authorized filter invocation [GET /oauth/authorize?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback] with attributes [authenticated]
2022-01-16 23:34:09.116 DEBUG 7932 --- [nio-9000-exec-4] o.s.security.web.FilterChainProxy        : Secured GET /oauth/authorize?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback
2022-01-16 23:34:09.123 DEBUG 7932 --- [nio-9000-exec-4] s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request
2022-01-16 23:34:09.125 DEBUG 7932 --- [nio-9000-exec-4] o.s.security.web.FilterChainProxy        : Securing GET /error?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback
2022-01-16 23:34:09.125 DEBUG 7932 --- [nio-9000-exec-4] w.c.HttpSessionSecurityContextRepository : Retrieved SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=user1, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=5565E84AD4896A2B06605E4AD0673E33], Granted Authorities=[ROLE_USER]]]
2022-01-16 23:34:09.125 DEBUG 7932 --- [nio-9000-exec-4] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=user1, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=5565E84AD4896A2B06605E4AD0673E33], Granted Authorities=[ROLE_USER]]]
2022-01-16 23:34:09.126 DEBUG 7932 --- [nio-9000-exec-4] o.s.security.web.FilterChainProxy        : Secured GET /error?response_type=code&client_id=client&redirect_uri=https%3A%2F%2Foauth.pstmn.io%2Fv1%2Fcallback
2022-01-16 23:34:09.159 DEBUG 7932 --- [nio-9000-exec-4] s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request

1 Answers

Removed ClientSettings from configuration and it working now. Seems like a bug to me in new version. But for whatever reason its working after removing that.

.clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())

Related