diff --git a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationResourceConfig.java b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationResourceConfig.java index c05f50e..63c485a 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationResourceConfig.java +++ b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationResourceConfig.java @@ -2,7 +2,7 @@ package com.micro.fast.security.app.config.authorization2; import com.micro.fast.security.app.config.component.MsAuthenticationFailureHandler; import com.micro.fast.security.app.config.component.MsAuthenticationSuccessHandler; -import com.micro.fast.security.app.social.OpenIdAuthenticationSecurityConfig; +import com.micro.fast.security.app.social.openid.OpenIdAuthenticationSecurityConfig; import com.micro.fast.security.core.authentication.mobile.SmsCodeAuthenticationSecurityConfig; import com.micro.fast.security.core.master.SecurityConstants; import com.micro.fast.security.core.master.SecurityProperties; diff --git a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/impl/AppSocialAuthenticationFilterProcessor.java b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/impl/AppSocialAuthenticationFilterProcessor.java new file mode 100644 index 0000000..45f5cb3 --- /dev/null +++ b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/impl/AppSocialAuthenticationFilterProcessor.java @@ -0,0 +1,24 @@ +package com.micro.fast.security.app.social.impl; + +import com.micro.fast.security.core.social.SocialAuthenticationFilterPostProcessor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; +import org.springframework.social.security.SocialAuthenticationFilter; +import org.springframework.stereotype.Component; + +/** + * 社交登录成功后的后处理器实现 + * @author lsy + */ +@Component +public class AppSocialAuthenticationFilterProcessor implements SocialAuthenticationFilterPostProcessor { + + @Autowired + private AuthenticationSuccessHandler successHandler; + + @Override + public void process(SocialAuthenticationFilter socialAuthenticationFilter) { + //传入授权成功处理器 + socialAuthenticationFilter.setAuthenticationSuccessHandler(successHandler); + } +} diff --git a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationFilter.java b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationFilter.java similarity index 98% rename from boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationFilter.java rename to boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationFilter.java index 35d6cd6..06d4565 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationFilter.java +++ b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationFilter.java @@ -1,4 +1,4 @@ -package com.micro.fast.security.app.social; +package com.micro.fast.security.app.social.openid; import com.micro.fast.security.core.master.SecurityConstants; import org.springframework.security.authentication.AuthenticationServiceException; diff --git a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationProvider.java b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationProvider.java similarity index 92% rename from boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationProvider.java rename to boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationProvider.java index 89e7fc4..9516ea6 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationProvider.java +++ b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationProvider.java @@ -1,15 +1,12 @@ -package com.micro.fast.security.app.social; +package com.micro.fast.security.app.social.openid; -import com.micro.fast.security.core.authentication.mobile.SmsCodeAuthenticationToken; import org.apache.commons.collections.CollectionUtils; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.InternalAuthenticationServiceException; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.social.connect.UsersConnectionRepository; -import org.springframework.social.security.SocialUserDetails; import org.springframework.social.security.SocialUserDetailsService; import java.util.HashSet; diff --git a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationSecurityConfig.java b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationSecurityConfig.java similarity index 98% rename from boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationSecurityConfig.java rename to boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationSecurityConfig.java index 2b0ed5c..4c99b09 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationSecurityConfig.java +++ b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationSecurityConfig.java @@ -1,4 +1,4 @@ -package com.micro.fast.security.app.social; +package com.micro.fast.security.app.social.openid; import org.springframework.beans.factory.annotation.Autowired; diff --git a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationToken.java b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationToken.java similarity index 97% rename from boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationToken.java rename to boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationToken.java index cd8d028..10f7016 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/OpenIdAuthenticationToken.java +++ b/boot-starter/boot-starter-security/boot-starter-security-app/src/main/java/com/micro/fast/security/app/social/openid/OpenIdAuthenticationToken.java @@ -1,4 +1,4 @@ -package com.micro.fast.security.app.social; +package com.micro.fast.security.app.social.openid; import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.core.GrantedAuthority; diff --git a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/MsSpringSocialConfigurer.java b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/MsSpringSocialConfigurer.java index 9222592..2c2afc5 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/MsSpringSocialConfigurer.java +++ b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/MsSpringSocialConfigurer.java @@ -9,6 +9,10 @@ import org.springframework.social.security.SpringSocialConfigurer; */ public class MsSpringSocialConfigurer extends SpringSocialConfigurer{ + /** + * 验证登录后处理器 + */ + private SocialAuthenticationFilterPostProcessor socialAuthenticationFilterPostProcessor; /** * 第三方登录的url */ @@ -29,6 +33,18 @@ public class MsSpringSocialConfigurer extends SpringSocialConfigurer{ SocialAuthenticationFilter filter = (SocialAuthenticationFilter) super.postProcess(object); //设置第三方登录的url filter.setFilterProcessesUrl(this.filterProcessUrl); + //如果后处理器不为空,我们就把filter传递给自定义的后处理器 + if (socialAuthenticationFilterPostProcessor != null){ + socialAuthenticationFilterPostProcessor.process(filter); + } return (T) filter; } + + public SocialAuthenticationFilterPostProcessor getSocialAuthenticationFilterPostProcessor() { + return socialAuthenticationFilterPostProcessor; + } + + public void setSocialAuthenticationFilterPostProcessor(SocialAuthenticationFilterPostProcessor socialAuthenticationFilterPostProcessor) { + this.socialAuthenticationFilterPostProcessor = socialAuthenticationFilterPostProcessor; + } } diff --git a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialAuthenticationFilterPostProcessor.java b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialAuthenticationFilterPostProcessor.java new file mode 100644 index 0000000..4f6aa81 --- /dev/null +++ b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialAuthenticationFilterPostProcessor.java @@ -0,0 +1,10 @@ +package com.micro.fast.security.core.social; + +import org.springframework.social.security.SocialAuthenticationFilter; + +/** + * @author lsy + */ +public interface SocialAuthenticationFilterPostProcessor { + void process(SocialAuthenticationFilter socialAuthenticationFilter); +} diff --git a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialConfig.java b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialConfig.java index 4b27fa3..8de8b5a 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialConfig.java +++ b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialConfig.java @@ -37,8 +37,11 @@ public class SocialConfig extends SocialConfigurerAdapter{ @Autowired private ConnectionFactoryLocator connectionFactoryLocator; - @Autowired + @Autowired(required = false) private ConnectionSignUp connectionSignUp; + + @Autowired(required = false) + private SocialAuthenticationFilterPostProcessor socialAuthenticationFilterPostProcessor; /** * * @param connectionFactoryLocator @@ -58,7 +61,7 @@ public class SocialConfig extends SocialConfigurerAdapter{ } /** - * springSocial的配置的bean + * springSocialconfigure的配置的bean * @return */ @Bean @@ -67,6 +70,8 @@ public class SocialConfig extends SocialConfigurerAdapter{ MsSpringSocialConfigurer msSpringSocialConfigurer = new MsSpringSocialConfigurer(social.getFilterProcessUrl()); // 设置第三方登录用户不存在的时候,注册或绑定的页面。如果设置为空则不跳转 msSpringSocialConfigurer.signupUrl(securityProperties.getBrowser().getSignUpUrl()); + //注入后处理器 + msSpringSocialConfigurer.setSocialAuthenticationFilterPostProcessor(socialAuthenticationFilterPostProcessor); return msSpringSocialConfigurer; } diff --git a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialProperties.java b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialProperties.java index d3e4b37..f7573d0 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialProperties.java +++ b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/social/SocialProperties.java @@ -2,7 +2,6 @@ package com.micro.fast.security.core.social; import com.micro.fast.security.core.social.qq.QQSocialProperties; import com.micro.fast.security.core.social.wechat.WeChatSocialProperties; -import com.micro.fast.security.core.social.wechat.api.WeChat; /** * 第三方登录配置类