我正在開發一個 POC,以將 Okta SSO 與 Spring MVC 與自定義登錄和索引 jsp 頁面集成。我已經配置了 Okta 帳戶并配置了登錄重定向 URI 和注銷重定向 URI
我指的是:https ://github.com/okta/samples-java-spring/tree/master/custom-login
登錄重定向 URI:http://localhost:8080/authorization-code/callback。以下是我的應用程式 yaml 檔案內容
port: 8080
spring:
security:
oauth2:
client:
provider:
okta:
authorization-uri: http://localhost:8080/custom-login
user-name-attribute: email
okta:
oauth2:
redirect-uri: https://dev-14057786.okta.com/oauth2/default
client-id: <client ID>
client-secret: <client-secret>
issuer: https://dev-14057786.okta.com/oauth2/default
scopes:
- openid
- email
- profile
我能夠獲得 Okta 登錄頁面,一旦我點擊登錄,我就會收到以下錯誤:
java.lang.IllegalStateException: The port must be an integer: 8080https:
at org.springframework.web.util.HierarchicalUriComponents.getPort(HierarchicalUriComponents.java:200) ~[spring-web-5.3.22.jar:5.3.22]
at org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter.matchesAuthorizationResponse(OAuth2AuthorizationCodeGrantFilter.java:196) ~[spring-security-oauth2-client-5.7.3.jar:5.7.3]
at org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter.doFilterInternal(OAuth2AuthorizationCodeGrantFilter.java:164) ~[spring-security-oauth2-client-5.7.3.jar:5.7.3]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter.doFilterInternal(DefaultLogoutPageGeneratingFilter.java:58) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22]
對此有任何幫助。
uj5u.com熱心網友回復:
您需要更正redirect-uriinapplication.yml檔案。
okta: oauth2: redirect-uri: https://dev-14057786.okta.com/oauth2/default
您提到了不正確的頒發者(即身份驗證服務器)的端點。它需要是客戶端應用程式端點。對于這個特定的應用程式,您只需要設定redirect-uri如下
okta:
oauth2:
redirect-uri: /authorization-code/callback
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/505292.html
上一篇:SpringbootMVC-通過更改url中的id阻止用戶查看端點
下一篇:由物體子生成器SpelEvaluationException生成的findByUserIsCurrentUser出錯
