Java 带有表单登录的Spring安全OAuth 2
我正在尝试将Spring引导应用程序配置为使用表单登录,并使用OAuth 2授权服务器验证凭据(将凭据从表单登录发送到用户授权URL) 但是,当我使用以下Java 带有表单登录的Spring安全OAuth 2,java,spring,spring-security,spring-boot,spring-security-oauth2,Java,Spring,Spring Security,Spring Boot,Spring Security Oauth2,我正在尝试将Spring引导应用程序配置为使用表单登录,并使用OAuth 2授权服务器验证凭据(将凭据从表单登录发送到用户授权URL) 但是,当我使用以下SecurityConfig并转到资源时,它会重定向到授权服务器,询问我的凭据(使用基本身份验证),然后重定向回应用程序本身 我正在使用以下SecurityConfig: @Configuration @EnableOAuth2Sso public class SecurityConfig extends OAuth2SsoConfigurer
SecurityConfig
并转到资源时,它会重定向到授权服务器,询问我的凭据(使用基本身份验证),然后重定向回应用程序本身
我正在使用以下SecurityConfig
:
@Configuration
@EnableOAuth2Sso
public class SecurityConfig extends OAuth2SsoConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http
.logout()
.and()
.antMatcher("/**")
.authorizeRequests()
.anyRequest().authenticated()
.and()
.csrf()
.csrfTokenRepository(csrfTokenRepository()).and()
.addFilterAfter(csrfHeaderFilter(), CsrfFilter.class)
.formLogin();
}
// CSRF repository + filter
}
我将formLogin()
提供给configure()
方法,但这似乎不起作用
以下配置位于我的应用程序.yml
文件中:
spring:
oauth2:
client:
clientId: test
clientSecret: secret
accessTokenUri: http://localhost:8081/uaa/oauth/token
userAuthorizationUri: http://localhost:8081/uaa/oauth/authorize
clientAuthenticationScheme: header
resource:
userInfoUri: http://localhost:8081/uaa/user
此配置确实有效,因为在重定向之后,我获得了授权,但这不是我希望它的工作方式(使用表单登录而不是重定向到OAuth2授权服务器)。对于SSO,关键是用户使用auth服务器进行身份验证(在您的情况下,localhost:8081)。如果您想要表单登录,则需要在那里实现,而不是在客户端应用程序中。对于SSO,关键是用户使用auth服务器(本地主机:8081)进行身份验证。如果您想要表单登录,则需要在那里实现,而不是在客户端应用程序中