自定义第三方登录的过滤器

This commit is contained in:
winLsy
2018-01-16 17:14:06 +08:00
parent c8cff87398
commit 462a4de3a6
4 changed files with 53 additions and 2 deletions
@@ -26,5 +26,7 @@
### 本项目提供的第三方登录的配置
- `ms.security.social.qq.appId` qq互联注册的id
- `ms.security.social.qq.appSecret` qq互联注册的密码
- `ms.security.social.qq.providerId` 第三方登录的标识,例如qq登录为`qq`
- `ms.security.social.qq.providerId` 第三方登录的标识,例如qq为`qq`登陆默认
- `ms.security.social.qq.filterProcessUrl` 进行第三方登录处理的基础url前缀,这个前缀会和providerId进行拼接来进行明确
的第三方登录
@@ -0,0 +1,34 @@
package com.micro.fast.security.core.social;
import org.springframework.social.security.SocialAuthenticationFilter;
import org.springframework.social.security.SpringSocialConfigurer;
/**
* 自定义springSocial配置类,这个bean在SocialConfig中声明
* @author lsy
*/
public class MsSpringSocialConfigurer extends SpringSocialConfigurer{
/**
* 第三方登录的url
*/
private String filterProcessUrl;
public MsSpringSocialConfigurer(String filterProcessUrl) {
this.filterProcessUrl = filterProcessUrl;
}
/**
* 对第三方登录的拦截器进行自定义设置
* @param object
* @param <T>
* @return
*/
@Override
protected <T> T postProcess(T object) {
SocialAuthenticationFilter filter = (SocialAuthenticationFilter) super.postProcess(object);
//设置第三方登录的url
filter.setFilterProcessesUrl(this.filterProcessUrl);
return (T) filter;
}
}
@@ -1,5 +1,6 @@
package com.micro.fast.security.core.social;
import com.micro.fast.security.core.master.SecurityProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
@@ -28,6 +29,9 @@ public class SocialConfig extends SocialConfigurerAdapter{
@Qualifier("dynamicDataSource")
private DataSource dataSource;
@Autowired
private SecurityProperties securityProperties;
/**
*
* @param connectionFactoryLocator
@@ -43,6 +47,7 @@ public class SocialConfig extends SocialConfigurerAdapter{
}
@Bean
public SpringSocialConfigurer springSocialConfigurer(){
return new SpringSocialConfigurer();
SocialProperties social = securityProperties.getSocial();
return new MsSpringSocialConfigurer(social.getFilterProcessUrl());
}
}
@@ -9,6 +9,8 @@ import com.micro.fast.security.core.social.qq.QQSocialProperties;
public class SocialProperties {
private QQSocialProperties qq = new QQSocialProperties();
private String filterProcessUrl = "/auth";
public QQSocialProperties getQq() {
return qq;
}
@@ -16,4 +18,12 @@ public class SocialProperties {
public void setQq(QQSocialProperties qq) {
this.qq = qq;
}
public String getFilterProcessUrl() {
return filterProcessUrl;
}
public void setFilterProcessUrl(String filterProcessUrl) {
this.filterProcessUrl = filterProcessUrl;
}
}