首页 > 解决方案 > WebSSO Spring + Angular 重定向-uri

问题描述

有spring-web(安全应用程序)。

这是配置:

   security:
    oauth2:
      client:
        registration:
          *auth:
            provider: *auth
            client-name: Login with the Identity Server
            client-id: ${app.auth-client.client-id}
            client-secret: ${app.auth-client.client-secret}
            authorization-grant-type: authorization_code
            redirect-uri: ?????
    provider:
      *auth:
        token-uri: ${app.auth-client.server-url}/${app.auth-client.realm}/${app.auth-client.server-url-postfix}/token
        authorization-uri: ${app.auth-client.server-url}/${app.auth-client.realm}/${app.auth-client.server-url-postfix}/auth
        user-info-uri: ${app.auth-client.server-url}/${app.auth-client.realm}/${app.auth-client.server-url-postfix}/userinfo
        jwk-set-uri: ${app.auth-client.server-url}/${app.auth-client.realm}/${app.auth-client.server-url-postfix}/certs

主要问题是如何为 UI 解析重定向 uri?有 2 种应用:后部(弹簧)和前部(角度)

它适用于重定向 uri:{baseUrl}/login/oauth2/code/{registrationId}

但它仅适用于 REST-API 和后端应用程序。

事实上,我想打开 UI 页面 - 如果用户没有被 auntificated - 使用 back 重定向到 auth-server。登录后 - 使用凭据重定向回(redirect-ui ???)到 UI 页面。

经典方式。但它不适用于单独的 UI。对于测试,我使用 keycloak。

标签: angularspringspring-securityoauthsingle-sign-on

解决方案


有诀窍:

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
...
@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
              ...
                .oauth2Login()
                .successHandler((request, response, authentication) -> response.sendRedirect(clientProperties.getRedirectUriSuccess()))

验证成功后需要定义重定向uri到UI。它与 sso 配置中的重定向 uri 不同。


推荐阅读