스프링 부트 2.0.0.M7을 사용 중이며 OAuth2가 작동하지 않습니다. 나는 그것이 facebook와 github를 위해 M4 아래에서 일하도록했다. (M5에서 바뀌었고, 그 때 그것을 시도하지 않았고 업그레이드하지 않았습니다.)스프링 부트 2.0.0.M7 및 Oauth2가 초기 리디렉션을 트리거하지 않음
내 앱에서 oauth 제공 업체로 초기 리디렉션을 트리거 할 수 없습니다. 공급자 1 (페이스 북)을 사용하면 이전에/login/facebook 필터가 외부 OAuth2로 리디렉션되었습니다. 지금 ... 토큰/리디렉션 논리를 트리거하기 위해 필요한 URL (문서에없는 것일 수도 있습니다)을 모르겠습니다.
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-security-oauth2 멘션/로그인/oauth2/코드/* -하지만 이것은 공급자 응답을위한 것으로 보이며 리디렉션을 트리거하지 않습니다.
내 현재의 구성은 다음과 같습니다 (그리고 M4에서 근무 후크 댓글로 남아있다)
@Configuration
@EnableWebSecurity
@EnableOAuth2Client
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
// ...
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.exceptionHandling()
.authenticationEntryPoint(new AuthenticationEntryPoint() {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response,
AuthenticationException authException) throws IOException, ServletException {
response.sendRedirect("/login");
}
})
.and()
.authorizeRequests()
.antMatchers("/", "/favicon.ico", "/static/**", "/login", "/login/**", "/logout", "/at/**").permitAll()
.anyRequest().authenticated()
.and()
// .addFilterBefore(new OAuth2ClientContextFilter(), BasicAuthenticationFilter.class)
// .addFilterBefore(oauthFilter("facebook"), BasicAuthenticationFilter.class)
// .addFilterBefore(githubFilter(), BasicAuthenticationFilter.class)
.csrf()
.disable()
.rememberMe()
.alwaysRemember(true)
;
http.httpBasic().disable();
http.formLogin().disable();
}
// private Filter facebookFilter() {
// @Bean @ConfigurationProperties("facebook.client") public AuthorizationCodeResourceDetails facebook() {
// ...
}
로그인 페이지가 링크가/로그인/페이스 북 및/로그인/GitHub의에.
내 application.yml은 다음과 같습니다
spring.security.oauth2.client.registration:
# developer.facebook.com
facebook:
client-id: redacted
client-secret: redacted
#https://github.com/settings/applications/redacted
github:
client-id: redacted
client-secret: redacted
을하고 도움이 될 수 있기 때문에, build.gradle에서 의존성의 선택 :
compile 'org.springframework.boot:spring-boot-starter-web'
compile 'org.springframework.security.oauth:spring-security-oauth2:2.2.1.RELEASE'
compile 'org.springframework.boot:spring-boot-starter-security'
compile 'org.springframework:spring-context:5.0.2.RELEASE'
compile 'org.springframework.security:spring-security-web:5.0.0.RELEASE'
compile 'org.springframework.security:spring-security-oauth2-client:5.0.0.RELEASE'
나는 이것에 빙빙 돌고 나이를 썼다. 어떤 도움을 환영 : 덕분에