【发布时间】:2020-03-17 12:42:30
【问题描述】:
我正在尝试使用 OAuth2 为 Spring Boot 设置 Facebook 登录。
首先我有我的 spring 安全配置。我希望 www.localhost:8080/Intranet/** 中的每个页面都被未经 Facebook 授权的人屏蔽。
@Configuration
@EnableOAuth2Client
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.antMatcher("/Intranet/**")
.authorizeRequests()
.antMatchers("/", "/Intranet")
.permitAll()
.anyRequest()
.authenticated()
.and()
.logout().logoutSuccessUrl("/").permitAll();
}
}
我在这里创建我的application.yml:
spring:
application:
name: spektrakonhemsida
security:
oauth2:
client:
registration:
facebook:
clientId: myID
clientSecret: mySecret
accessTokenUri: https://graph.facebook.com/oauth/access_token
userAuthorizationUri: https://www.facebook.com/dialog/oauth
tokenName: oauth_token
authenticationScheme: query
clientAuthenticationScheme: form
resource:
userInfoUri: https://graph.facebook.com/me
# Server configuration
server:
port: 8080
error:
whitelabel:
enabled: false
然后我有了 Spring Security 和 OAuth2 的依赖项:
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-client</artifactId>
</dependency>
<!-- Prevent /error to crash -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
这是正在发生的事情:
- 当我访问 www.localhost:8080/Intranet
- 当我访问 www.localhost:8080/Intranet/Bokning
但我希望用户在进入 /Intranet/** 时自动导航到 Facebook 的登录页面
为什么没有发生这种情况?
【问题讨论】:
-
spring.security.oauth2.client是 OAuth2ClientProperties 的有效前缀。你的是security.oauth2.client -
@SergVasylchak 在哪里?
-
在
application.yml -
@SergVasylchak 我也有展位 application.properties 文件。它适用于 MySQL。你认为那个文件会干扰 yml 文件吗?
-
我从来没有同时拥有过
application.properties和application.yml,所以我不能确定。
标签: java spring spring-boot oauth-2.0 facebook-oauth