WebSSO Spring + Angular 重定向-uri

Posted

技术标签:

【中文标题】WebSSO Spring + Angular 重定向-uri【英文标题】:WebSSO Spring + Angular redirect-uri 【发布时间】:2021-03-14 05:14:22 【问题描述】:

有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。

【问题讨论】:

【参考方案1】:

有诀窍:

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 不同。

【讨论】:

以上是关于WebSSO Spring + Angular 重定向-uri的主要内容,如果未能解决你的问题,请参考以下文章

spring social facebook + api + angularjs(如何从 angular 调用 -> spring api -> 重定向到 facebook 登录)

Angular Spring Boot:重定向错误:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Content-Type

在 Spring Boot 中将未知请求重定向到 index.html

text webSSO使用url登录

Angular , Spring security 一个 MYSQL 基本登录

带有 Spring 安全 webflux 的 Angular 6 被 CORS 阻止