✨ 添加新特性。支持国际化、重构pigxresourceserver注解

This commit is contained in:
冷冷 committed 2018-11-14 21:02:26 +08:00
1 parent f8a9c21901
commit 0cd3f3fa65
53 files changed
+353 -101

No files matched your search

@@ -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;
@@ -38,4 +38,12 @@ import java.lang.annotation.*;
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Import(PigxResourceServerAutoConfiguration.class)
public @interface EnablePigxResourceServer {
/**
* false:上下文获取用户名
* true: 上下文获取全部用户信息
*
* @return
*/
boolean details() default false;
}
@@ -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);
}
}
@@ -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;
}
}