✨ 添加新特性。支持国际化、重构pigxresourceserver注解
This commit is contained in:
1 parent
f8a9c21901
commit
0cd3f3fa65
53 files changed
+353
-101
No files matched your search
+1
-1
@@ -15,7 +15,7 @@
|
||||
* Author: lengleng (wangiegie@gmail.com)
|
||||
*/
|
||||
|
||||
package com.pig4cloud.pigx.common.security.feign;
|
||||
package com.pig4cloud.pigx.common.security.annotation;
|
||||
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
|
||||
+8
@@ -38,4 +38,12 @@ import java.lang.annotation.*;
|
||||
@EnableGlobalMethodSecurity(prePostEnabled = true)
|
||||
@Import(PigxResourceServerAutoConfiguration.class)
|
||||
public @interface EnablePigxResourceServer {
|
||||
|
||||
/**
|
||||
* false:上下文获取用户名
|
||||
* true: 上下文获取全部用户信息
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
boolean details() default false;
|
||||
}
|
||||
+8
-2
@@ -17,6 +17,7 @@
|
||||
|
||||
package com.pig4cloud.pigx.common.security.component;
|
||||
|
||||
import lombok.Setter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
@@ -48,7 +49,8 @@ public class BaseResourceServerConfigurerAdapter extends ResourceServerConfigure
|
||||
private PermitAllUrlProperties permitAllUrlProperties;
|
||||
@Autowired
|
||||
private RestTemplate lbRestTemplate;
|
||||
|
||||
@Setter
|
||||
private boolean details;
|
||||
|
||||
/**
|
||||
* 默认的配置,对外暴露
|
||||
@@ -81,7 +83,11 @@ public class BaseResourceServerConfigurerAdapter extends ResourceServerConfigure
|
||||
*/
|
||||
@Override
|
||||
public void configure(ResourceServerSecurityConfigurer resources) {
|
||||
canGetUser(resources);
|
||||
if (details) {
|
||||
canGetUser(resources);
|
||||
} else {
|
||||
notGetUser(resources);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+13
-1
@@ -17,6 +17,8 @@
|
||||
|
||||
package com.pig4cloud.pigx.common.security.component;
|
||||
|
||||
import cn.hutool.core.util.ClassUtil;
|
||||
import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -25,6 +27,8 @@ import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author lengleng
|
||||
* @date 2018/11/10
|
||||
@@ -41,6 +45,14 @@ public class PigxResourceServerAutoConfiguration {
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(ResourceServerConfigurerAdapter.class)
|
||||
public ResourceServerConfigurerAdapter resourceServerConfigurerAdapter() {
|
||||
return new BaseResourceServerConfigurerAdapter();
|
||||
Set<Class<?>> classes = ClassUtil.scanPackageByAnnotation("com.pig4cloud.pigx", EnablePigxResourceServer.class);
|
||||
boolean details = false;
|
||||
for (Class<?> clazz : classes) {
|
||||
details = clazz.getAnnotation(EnablePigxResourceServer.class).details();
|
||||
}
|
||||
BaseResourceServerConfigurerAdapter baseResourceServerConfigurerAdapter
|
||||
= new BaseResourceServerConfigurerAdapter();
|
||||
baseResourceServerConfigurerAdapter.setDetails(details);
|
||||
return baseResourceServerConfigurerAdapter;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user