[SPRING] 소셜 공급자를 사용하여 성공한 로그인 후 리디렉션 URL을 설정하는 방법
SPRING소셜 공급자를 사용하여 성공한 로그인 후 리디렉션 URL을 설정하는 방법
트위터와 같이 Spring Social Providers 중 일부를 사용하여 내 사용자가 로그인 한 경우 리디렉션 URL을 변경해야합니다.
나는 모든 세트 ***에 들어가고있다. Url ( "") 널 포인터 예외 이것을 설정하는 어떤 때는 너무 효과가 없습니다.
나는 지금까지 설정을 시도 :
public ProviderSignInController signInController(ConnectionFactoryLocator connectionFactoryLocator,
UsersConnectionRepository usersConnectionRepository) {
ProviderSignInController providerSignInController = new ProviderSignInController(connectionFactoryLocator,
usersConnectionRepository,
new CSignInAdapter(requestCache()));
providerSignInController.setPostSignInUrl("/home");
providerSignInController.setApplicationUrl("localhost:8080/home");
return providerSignInController;
}
나는 setPostSignInUrl과 setApplicationUrl 각각을 개별적으로 시도했다.
또한 시도 :
@Bean
public ConnectController connectController(ConnectionFactoryLocator connectionFactoryLocator,
ConnectionRepository connectionRepository) {
ConnectController connectController = new ConnectController(connectionFactoryLocator, connectionRepository);
connectController.addInterceptor(new TweetAfterConnectInterceptor());
connectController.setApplicationUrl("/home");
return connectController;
}
저는 이것을하기 위해 Security와 함께 Spring Social 쇼케이스를 사용하고 있습니다. 필요한 경우 HttpSecurity 구성을 게시하고 있습니다.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin()
.loginPage("/signin")
.loginProcessingUrl("/signin/authenticate")
.failureUrl("/signin?param.error=bad_credentials")
.defaultSuccessUrl("/home")
.and()
.csrf()
.and()
.logout()
.logoutUrl("/signout")
.deleteCookies("JSESSIONID")
.and()
.authorizeRequests()
.antMatchers("/admin/**", "/favicon.ico", "/resources/**", "/auth/**", "/signin/**", "/signup/**",
"/disconnect/facebook").permitAll()
.antMatchers("/**").authenticated()
.and()
.rememberMe()
.and()
.apply(new SpringSocialConfigurer());
}
해결법
-
==============================
1.이 시도:
이 시도:
private SpringSocialConfigurer getSpringSocialConfigurer() { SpringSocialConfigurer config = new SpringSocialConfigurer(); config.alwaysUsePostLoginUrl(true); config.postLoginUrl("/home"); return config; }
그런 다음 configure 메소드를 변경하십시오.
.apply(getSpringSocialConfigurer());
-
==============================
2.Spring Social의 경우 게시 로그인 URL을 "/ home"과 같은 기본 URL로 구성 할 수 있습니다.
Spring Social의 경우 게시 로그인 URL을 "/ home"과 같은 기본 URL로 구성 할 수 있습니다.
그러나 특정 상황에서는 사용자를 다른 URL로 안내하려고합니다. 로그인 성공 후 리디렉션 URL을 동적으로 변경하려면 SignInAdapter 구현 클래스의 signIn 메서드에서 원하는 URL을 나타내는 String을 반환하면됩니다.
import org.springframework.social.connect.web.SignInAdapter; public class SocialSignInAdapter implements SignInAdapter { public String signIn(String localUserId, Connection<?> connection, NativeWebRequest request) { boolean flag = true; if (flag) { return "/a_different_url"; } return null; // Default, which means using the default post login URL } }
나는 Spring Social 버전 1.1.0.RELEASE를 사용하여 이것을 검증했다.
from https://stackoverflow.com/questions/24439777/how-to-set-redirect-url-after-success-login-using-social-providers by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] org.apache.catalina.LifecycleException : 시작시 하위 컨테이너가 실패했습니다. (0) | 2019.04.09 |
---|---|
[SPRING] 봄 부팅 메모리 소비가 -Xmx 옵션을 초과하여 증가합니다. (0) | 2019.04.09 |
[SPRING] Java 9 : java.lang.ClassNotFoundException : Spring Boot 응용 프로그램의 java.sql.SQLException (0) | 2019.04.09 |
[SPRING] Spring 컨텍스트가 두 번로드되는 이유는 무엇입니까? (0) | 2019.04.09 |
[SPRING] JSON - Spring MVC : spring MVC 컨트롤러에 json 데이터를 게시하는 방법 (0) | 2019.04.09 |