我使用Spring Boot Social通過SpringSocialConfigurer
進行OAuth身份驗證,並且所有與第三方OAuth提供者進行的OAuth身份驗證均通過/auth/providerId
路徑。Spring Boot Social disable ConnectController
一切工作正常,但我注意到,ConnectController
也呈現在我的應用程序配置:
2015-05-02 12:02:47 [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/connect/{providerId}],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.view.RedirectView org.springframework.social.connect.web.ConnectController.connect(java.lang.String,org.springframework.web.context.request.NativeWebRequest)
2015-05-02 12:02:47 [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/connect/{providerId}],methods=[GET],params=[error],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.view.RedirectView org.springframework.social.connect.web.ConnectController.oauth2ErrorCallback(java.lang.String,java.lang.String,java.lang.String,java.lang.String,org.springframework.web.context.request.NativeWebRequest)
2015-05-02 12:02:47 [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/connect/{providerId}],methods=[DELETE],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.view.RedirectView org.springframework.social.connect.web.ConnectController.removeConnections(java.lang.String,org.springframework.web.context.request.NativeWebRequest)
2015-05-02 12:02:47 [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/connect],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String org.springframework.social.connect.web.ConnectController.connectionStatus(org.springframework.web.context.request.NativeWebRequest,org.springframework.ui.Model)
2015-05-02 12:02:47 [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/connect/{providerId}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String org.springframework.social.connect.web.ConnectController.connectionStatus(java.lang.String,org.springframework.web.context.request.NativeWebRequest,org.springframework.ui.Model)
2015-05-02 12:02:47 [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/connect/{providerId}],methods=[GET],params=[oauth_token],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.view.RedirectView org.springframework.social.connect.web.ConnectController.oauth1Callback(java.lang.String,org.springframework.web.context.request.NativeWebRequest)
2015-05-02 12:02:47 [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/connect/{providerId}],methods=[GET],params=[code],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.view.RedirectView org.springframework.social.connect.web.ConnectController.oauth2Callback(java.lang.String,org.springframework.web.context.request.NativeWebRequest)
2015-05-02 12:02:47 [main] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/connect/{providerId}/{providerUserId}],methods=[DELETE],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.view.RedirectView org.springframework.social.connect.web.ConnectController.removeConnection(java.lang.String,java.lang.String,org.springframework.web.context.request.NativeWebRequest)
我想我不需要ConnectController
。有什麼辦法可以禁用它嗎?
更新:
這是我目前SocialConfig
@Configuration
@EnableSocial
public class SocialConfig extends SocialConfigurerAdapter {
@Autowired
private UserService userService;
@Autowired
private SocialUserService socialUserService;
@Autowired
private TextEncryptor textEncryptor;
@Override
public UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator connectionFactoryLocator) {
Neo4jUsersConnectionRepository connectionRepository = new Neo4jUsersConnectionRepository(userService, socialUserService,
(SocialAuthenticationServiceLocator) connectionFactoryLocator, textEncryptor);
connectionRepository.setConnectionSignUp(new UserConnectionSignUp(userService));
return connectionRepository;
}
@Bean
public SocialUserDetailsService socialUserDetailsService() {
return new DBSocialUserDetailService(userService);
}
}
你應該簡單地從你的Social上下文配置中移除'ConnectionController' bean。 – Vaelyr
以什麼方式?我沒有手動聲明這個bean? – alexanoid
您需要爲您的配置有一個單獨的社會環境。如果Spring Boot爲你自動執行它,那麼你必須自己定義你確切需要的地方。你不能排除任何東西。 https://github.com/spring-projects/spring-social-samples/blob/77a79c2fcba8102463acbe84457614f89d0648a4/spring-social-showcase/src/main/java/org/springframework/social/showcase/config/SocialConfig.java – Vaelyr