`
lion222
  • 浏览: 122173 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

java Spring Security 总结二 7

阅读更多

    2 自定义MethodDefinitionSource

    将方法资源存放在数据库中的实现与URL资源类似,这里不在累述,下面是 DataBaseMethodInvocationDefinitionSource的源代码,读者可以参考注释进行阅读(该类也是继承自一个自定义的抽象类AbstractMethodDefinitionSource):

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public ConfigAttributeDefinition lookupAttributes(Method method, Class targetClass) {
 2 
 3        // TODO Auto-generated method stub
 4 
 5        //初始化资源并缓存
 6 
 7        securityCacheManager.initResourceInCache();
 8 
 9        //获取所有方法资源
10 
11        List<String> methods = securityCacheManager.getMethodResources();
12 
13        //权限集合
14 
15        Set<GrantedAuthority> authSet = new HashSet<GrantedAuthority>();
16 
17        //遍历方法资源,并获取匹配的资源名称,然后从缓存中获取匹配正确
18 
19        //的资源对应的权限(ResourcDetail对象的GrantedAuthority[]对象数据)
20 
21        for (String resourceName_method : methods) {
22 
23            if (isMatch(targetClass, method, resourceName_method)) {
24 
25               ResourcDetail detail = securityCacheManager.getResourcDetailFromCache(resourceName_method);
26 
27               if (detail == null) {
28 
29                   break;
30 
31               }
32 
33               GrantedAuthority[] authorities = detail.getAuthorities();
34 
35               if (authorities == null || authorities.length == 0) {
36 
37                   break;
38 
39               }
40 
41               authSet.addAll(Arrays.asList(authorities));
42 
43            }
44 
45        }
46 
47        if (authSet.size() > 0) {
48 
49            String authString = "";
50 
51            for (GrantedAuthority grantedAuthority : authSet) {
52 
53               authString += grantedAuthority.getAuthority() + ",";
54 
55            }
56 
57            String authority = authString.substring(0, (authString.length() - 1));
58 
59            System.out.println(">>>>>>>>>>>>>>>" + authority);
60 
61            ConfigAttributeEditor attributeEditor = new ConfigAttributeEditor();
62 
63            attributeEditor.setAsText(authority.trim());
64 
65            return (ConfigAttributeDefinition)attributeEditor.getValue();
66 
67        }
68 
69        returnnull;
70 
71 }

    isMatch方法用于对用户当前调用的方法与受保护的方法进行匹配,与URL资源类似,请参考代码。下面是applicationContext-security.xml文件中的配置,请查看该配置文件。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->1 <bean id="methodDefinitionSource"
2     class="org.security.intercept.method.DataBaseMethodInvocationDefinitionSource"
3     p:securityCacheManager-ref="securityCacheManager"/>

    securityCacheManager属性定义了指向另一个Bean的引用,我们使用它从缓存中获取相应的信息。这个Bean和前一节中介绍的一样。只是这里我们获取的是方法保护定义资源。

    本文到此也结束了,还请各位多指教。

分享到:
评论

相关推荐

    基于Java Spring Security的关注微信公众号即登录的设计与实现源码.zip

    基于Java Spring Security的关注微信公众号即登录的设计与实现源码.zip基于Java Spring Security的关注微信公众号即登录的设计与实现源码.zip基于Java Spring Security的关注微信公众号即登录的设计与实现源码.zip ...

    SpringSecurity项目

    springsecurity是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring安全性的真正威力在于它可以很容易地扩展以满足定制需求。 spring security 的核心功能主要包括: 认证 (你是...

    SpringSecurity.zip

    ​ Spring Security:spring家族一员。是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转...

    java学习之SpringSecurity配置了登录链接无权限

    我们在使用SpringSecurity作为后台权限框架的时候,框架给我们提供了配置登录请求的接口,供我们配置登录链接,当我们配置了登录链接地址后,前端访问登陆请求的时候显示无权限。 异常分析 由于SpringSecurity的...

    springsecurity学习笔记

    三更springsecurity学习笔记

    SpringSecurity课程文档下载 pdf 教学

    SpringSecurity课程文档下载 pdf 教学

    Spring Security OAuth2.0学习笔记.zip

    Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...

    spring security 4.0.0所需jar包

    使用springsecurity做权限管理时,必须要有的jar,当然有些可以不用,你可以按需加入你的项目 @最美最好的你 vx: dengqun2011

    spring security3.0所需要的最精简的jar包

    早一段时间学习了springsecurity3.0 框架,在开始阶段不知道导入那些必需jar包,经过摸索,总结出来最精简的jar包

    Spring Security权限管理开发手册

    Spring Security 3 Spring Security权限管理开发手册 详细介绍了web app中如何一步步加入 spring security 框架支持,配置灵活,功能强大 中文教程及例子-Spring Security 3 Spring Security rights management ...

    spring_security_3.1

    和spring集成使用的完美权限框架,学习java一定要学会spring_security

    spring-security-oauth2-2.3.5.RELEASE-API文档-中文版.zip

    标签:spring、security、springframework、oauth2、oauth、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代

    Spring Security 把授权信息写入数据库

    Spring Security 把授权信息写入数据库

    spring-security-crypto-5.5.2-API文档-中文版.zip

    标签:springframework、security、spring、crypto、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释...

    基于springBoot+springSecurity+jwt实现前后端分离用户权限认证

    springSecurity也有很多种权限认证方式,本项目主要实现基于接口授权,也就是说通过注解给controller赋予权限,用户只有拥有某个接口的权限才能成功访问这个接口,从而实现不同用户拥有不同访问权限;

    spring-security-core-5.5.2-API文档-中文版.zip

    标签:springframework、security、spring、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    Spring Security3 安全 个人总结

    Spring Security3 拦截 过滤器 安全,框架原理入门

    安全框架Spring Security深入浅出视频教程

    视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 首先,SSM环境中我们通过xml配置的...Springsecurity在两种不同的开发模式中使用,有经典的独立web后台管理系统,也有时下最流行的前后端分离场景。

    Spring Security

    Spring Security是什么? 历史 发布版本号 Getting Spring Security Spring Security 4.1新特性 Java 配置提升 Web应用程序安全性提升 授权改进 密码模块的改进 测试的改进 一般的改进 样品和指南 (Start Here) Java ...

    springboot整合springSecurity

    springboot整合springSecurity

Global site tag (gtag.js) - Google Analytics