2014-06-26 7 views
5

Kullanıcım, bu durumda Twitter gibi bazı Bahar Sosyal Sağlayıcılarını kullanarak başarılı bir şekilde oturum açtığında yönlendirme URL'sini değiştirmem gerekiyor. Her sette alıyorumBaşarıdan sonra yönlendirme URL'si nasıl belirlenir Sosyal Sağlayıcılar kullanılarak oturum açma

*** URL ("") bir boş gösterici istisna ayarı Bazı zamanlar bunun şimdiye kadar ayar denedim çok

çalışmaz:

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 ve setApplicationUrl öğelerinin her birini ayrı ayrı denedim.

Ayrıca çalıştı: Bunu yapmak üs olarak Security ile Bahar Sosyal vitrinini kullanıyorum

@Bean 
    public ConnectController connectController(ConnectionFactoryLocator connectionFactoryLocator, 
               ConnectionRepository connectionRepository) { 
     ConnectController connectController = new ConnectController(connectionFactoryLocator, connectionRepository); 
     connectController.addInterceptor(new TweetAfterConnectInterceptor()); 
     connectController.setApplicationUrl("/home"); 
     return connectController; 
    } 

.

Bahar Sosyal İçin
.apply(getSpringSocialConfigurer()); 

cevap

4

: ihtiyaç halinde ben HttpSecurity yapılandırmasını post ediyorum posta giriş URL'sini "/ home" gibi bir varsayılan URL'ye yönlendirin.

Ancak belirli koşullar altında, kullanıcıyı farklı bir URL'ye yönlendirmek istersiniz. dinamik başarılı girişten sonra yönlendirme URL'sini değiştirmek için, sadece size SignInAdapter uygulama sınıfının signin'i yönteminde arzu herhangi bir URL temsil eden bir dize döndürebilir:

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 
    } 
} 

Bunu kullanarak Bahar Sosyal versiyonunu doğrulanmadı 1.1.0 .RELEASE

+0

Merhaba beyler, Burada bir şüphem var. Dinamik olarak url alacağım. this.config.postLoginUrl ("/ event? eventid = 4") gibi. bu olay kimlik numarası dinamik olarak değişecektir. mümkün mü? –

+0

lütfen bana yukarıdaki soruları açıklayınız. zamanın olduğunda. –

0

, Yapılandırabileceğiniz:

private SpringSocialConfigurer getSpringSocialConfigurer() { 
     SpringSocialConfigurer config = new SpringSocialConfigurer(); 
     config.alwaysUsePostLoginUrl(true); 
     config.postLoginUrl("/home"); 

     return config; 
} 

Sonra yapılandırmak yöntemini değiştirin: Bunu deneyin

@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()); 
    } 
İlgili konular