当前位置: 首页 > news >正文

做电脑网站步骤宝安区建设工程交易服务中心

做电脑网站步骤,宝安区建设工程交易服务中心,怎么注销自己做的网站,滕州本地网站建设一、SPEL表达式权限控制从spring security 3.0开始已经可以使用spring Expression表达式来控制授权#xff0c;允许在表达式中使用复杂的布尔逻辑来控制访问的权限。Spring Security可用表达式对象的基类是SecurityExpressionRoot。表达式函数描述hasRole([role])用户拥有指定…一、SPEL表达式权限控制从spring security 3.0开始已经可以使用spring Expression表达式来控制授权允许在表达式中使用复杂的布尔逻辑来控制访问的权限。Spring Security可用表达式对象的基类是SecurityExpressionRoot。表达式函数描述hasRole([role])用户拥有指定的角色时返回true (Spring security默认会带有ROLE_前缀),去除前缀参考Remove the ROLE_hasAnyRole([role1,role2])用户拥有任意一个指定的角色时返回truehasAuthority([authority])拥有某资源的访问权限时返回truehasAnyAuthority([auth1,auth2])拥有某些资源其中部分资源的访问权限时返回truepermitAll永远返回truedenyAll永远返回falseanonymous当前用户是anonymous时返回truerememberMe当前用户是rememberMe用户返回trueauthentication当前登录用户的authentication对象fullAuthenticated当前用户既不是anonymous也不是rememberMe用户时返回truehasIpAddress(192.168.1.0/24))请求发送的IP匹配时返回true部分朋友可能会对Authority和Role有些混淆。Authority作为资源访问权限可大可小可以是某按钮的访问权限(如资源IDbiz1)也可以是某类用户角色的访问权限(如资源IDADMIN)。当Authority作为角色资源权限时hasAuthority(ROLE_ADMIN)与hasRole(ADMIN)是一样的效果。二、SPEL在全局配置中的使用我们可以通过继承WebSecurityConfigurerAdapter实现相关的配置方法进行全局的安全配置(之前的章节已经讲过) 。下面就为大家介绍一些如何在全局配置中使用SPEL表达式。2.1.URL安全表达式config.antMatchers(/system/*).access(hasAuthority(ADMIN) or hasAuthority(USER)).anyRequest().authenticated();这里我们定义了应用/person/*URL的范围只有拥有ADMIN或者USER权限的用户才能访问这些person资源。2.2.安全表达式中引用bean这种方式比较适合有复杂权限验证逻辑的情况当Spring Security提供的默认表达式方法无法满足我们的需求的时候。首先我们定义一个权限验证的RbacService。Component(rbacService)Slf4jpublic class RbacService {//返回true表示验证通过public boolean hasPermission(HttpServletRequest request, Authentication authentication) {//验证逻辑代码return true;}public boolean checkUserId(Authentication authentication, int id) {//验证逻辑代码return true;}}对于/person/{id}对应的资源的访问调用rbacService的bean的方法checkUserId进行权限验证传递参数为authentication对象和person的id。该id为PathVariable以#开头表示。config.antMatchers(/person/{id}).access(rbacService.checkUserId(authentication,#id)).anyRequest().access(rbacService.hasPermission(request,authentication));三、 Method表达式安全控制如果我们想实现方法级别的安全配置Spring Security提供了四种注解分别是PreAuthorize , PreFilter , PostAuthorize 和 PostFilter3.1.开启方法级别注解的配置在Spring安全配置代码中加上EnableGlobalMethodSecurity注解开启方法级别安全配置功能。ConfigurationEnableGlobalMethodSecurity(prePostEnabled true)public class MySecurityConfig extends WebSecurityConfigurerAdapter {3.2 使用PreAuthorize注解PreAuthorize 注解适合进入方法前的权限验证。只有拥有ADMIN角色才能访问findAll方法。PreAuthorize(hasRole(ADMIN))List findAll();3.3 使用PostAuthorize注解PostAuthorize 在方法执行后再进行权限验证,适合根据返回值结果进行权限验证。Spring EL 提供返回对象能够在表达式语言中获取返回的对象returnObject。下文代码只有返回值的name等于authentication对象的name才能正确返回否则抛出异常。PostAuthorize(returnObject.name authentication.name)Person findOne(Integer id);3.4 使用PreFilter注解PreFilter 针对参数进行过滤,下文代码表示针对ids参数进行过滤只有id为偶数才能访问delete方法。//当有多个对象是使用filterTarget进行标注PreFilter(filterTargetids, valuefilterObject%20)public void delete(List ids, List usernames) {3.5 使用PostFilter 注解PostFilter 针对返回结果进行过滤特别适用于集合类返回值过滤集合中不符合表达式的对象。PostFilter(filterObject.name authentication.name)List findAll();总结以上所述是小编给大家介绍的使用Spring安全表达式控制系统功能访问权限问题希望对大家有所帮助如果大家有任何疑问请给我留言小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持如果你觉得本文对你有帮助欢迎转载烦请注明出处谢谢
http://www.yutouwan.com/news/239082/

相关文章:

  • 怎么创建网站快捷方式到桌面轻食网络推广方案
  • 宁波企业网站制作推荐大同推广型网站建设
  • 免费生成网站的app重庆网站优化软件
  • 同一个域名可以做几个网站吗iis6.0新发布网站访问速度慢
  • 网站备案在外地推广方法和技巧
  • 网站建设任务分解电商运营自学难吗
  • 山东省建设监理网站中国设计网平面设计网
  • 短视频获客优化过程中十大技巧
  • 网页的创新型网站策划做网站谈单
  • 小说网站做封面要钱吗百度服务中心电话
  • 设计网站专题页包括那些项目天津专业的网站建设公司
  • 如何查询网站建设者科技大盗
  • 做一个简单的网站做网站以后的趋势知乎
  • 域名注册网站大全导航网站制作教程
  • 凡科网站空间慢房产网址
  • 滕州手机网站建设php 显示不同网站内容
  • php部署网站泰州北京网站建设
  • 怎样上传网站程序百度怎么打广告
  • 网站设计制作中心WordPress开通用户投稿功能
  • 上海网站建设培训班大凤号 网站建设
  • 徐州梦网科技做网站怎么样中国建设招标信息网站
  • 江苏省建设教育协会网站广东建设银行网站首页
  • 网站制作模板北京设计师培训大纲
  • 网站域名转发上海html5网站制作公司
  • 四川城乡建设厅官方网站怎么做淘宝客网站赚钱吗
  • 做智能网站网上建立网站
  • 怎样做化妆品公司网站工业设计网官网
  • 贵阳做网站需要多少钱做网站界面尺寸是多少
  • 石景山网站建设制作公司广州软件系统开发seo推广
  • 珠宝出售网站模板家装公司名称