浏览代码

修改鉴权框架中,自动注入到RequestAttribute中的访问对象名,由原来的固定名称accessEntity(依然保留但是标记废弃)改为自动获取AccessEntity实现类的名称并首字母转小写

Signed-off-by: luoshi <luoshi@qmth.com.cn>
luoshi 3 年之前
父节点
当前提交
228dea2118

+ 4 - 0
starter-api/src/main/java/com/qmth/boot/api/constant/ApiConstant.java

@@ -30,6 +30,10 @@ public interface ApiConstant {
 
 
     String ATTRIBUTE_AAC_CONFIG = "aacConfig";
     String ATTRIBUTE_AAC_CONFIG = "aacConfig";
 
 
+    /**
+     * 默认对象名称即将废弃
+     */
+    @Deprecated
     String ATTRIBUTE_ACCESS_ENTITY = "accessEntity";
     String ATTRIBUTE_ACCESS_ENTITY = "accessEntity";
 
 
     String ATTRIBUTE_START_TIME = "startTime";
     String ATTRIBUTE_START_TIME = "startTime";

+ 4 - 0
starter-api/src/main/java/com/qmth/boot/api/interceptor/impl/AuthorizationInterceptor.java

@@ -9,6 +9,7 @@ import com.qmth.boot.core.logger.constant.LoggerConstant;
 import com.qmth.boot.core.security.exception.AuthorizationException;
 import com.qmth.boot.core.security.exception.AuthorizationException;
 import com.qmth.boot.core.security.model.AccessEntity;
 import com.qmth.boot.core.security.model.AccessEntity;
 import com.qmth.boot.core.security.service.AuthorizationSupport;
 import com.qmth.boot.core.security.service.AuthorizationSupport;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -36,7 +37,10 @@ public class AuthorizationInterceptor extends AbstractInterceptor implements Log
                 entity = authorizationSupport
                 entity = authorizationSupport
                         .validateSignature(request.getHeader(HEADER_AUTHORIZATION), request.getMethod(),
                         .validateSignature(request.getHeader(HEADER_AUTHORIZATION), request.getMethod(),
                                 request.getServletPath(), request.getHeader(HEADER_TIME), config.getSignType());
                                 request.getServletPath(), request.getHeader(HEADER_TIME), config.getSignType());
+                // 默认对象名,即将废弃
                 request.setAttribute(ATTRIBUTE_ACCESS_ENTITY, entity);
                 request.setAttribute(ATTRIBUTE_ACCESS_ENTITY, entity);
+                // 以实现类名首字母小写后作为对象名
+                request.setAttribute(StringUtils.uncapitalize(entity.getClass().getSimpleName()), entity);
                 // 默认取签名标识作为接口访问者标识
                 // 默认取签名标识作为接口访问者标识
                 if (request.getAttribute(ATTRIBUTE_CALLER) == null) {
                 if (request.getAttribute(ATTRIBUTE_CALLER) == null) {
                     request.setAttribute(ATTRIBUTE_CALLER, entity.getIdentity());
                     request.setAttribute(ATTRIBUTE_CALLER, entity.getIdentity());