`

JPA高级权限验证之security.drl如何写

阅读更多
1.UsersEdit.xhtml
<s:decorate id="realnameField" template="../layout/edit.xhtml">
                <ui:define name="label">Realname</ui:define>
                <h:inputText id="realname" required="true"
                           size="50"
                      maxlength="100"
                          value="#{user2.realname}" rendered="#{s:hasPermission('insertname', 'insert')}">
                    <a:support event="onblur" reRender="realnameField" bypassUpdates="true" ajaxSingle="true"/>
                </h:inputText>
</s:decorate>

   在这里有个rendered="#{s:hasPermission('insertname', 'insert')}",这个主要是用来测试的。看在security.drl文件中如何写,才能满足这样的条件。

2. security.drl
rule InsertTest
  no-loop
  activation-group "permissions"
when
  check: PermissionCheck(target == "insertname",action == "insert",granted == false)
  Role(name == "admin")
then
  check.grant();
end

  这样的话就只有admin的用户才有这样的权限了。另外必须target == "insertname",action == "insert"这两个条件都满足的话,就可以看到那个文本框了!!

    如果没有target == "insertname"则程序会报错!!

    如果没有action == "insert"则也会看不到文本框!!

 

 

    另外说明一点:这是JPA的高级权限验证的,即没有通过数据库的手工配置而是通过security.drl文件来控制的。如果想通过配置数据库的permission表来控制权限的话,就必须在登录的时候把permission对象加载出来,然后放到WorkingMemory中,这部分的内容在前面的文章里面已经讲过了。!!

 

分享到:
评论

相关推荐

    Apress.Pro.JPA.2.2nd.Edition.Oct.2013

    《Apress.Pro.JPA.2.2nd.Edition.Oct.2013》是一部关于Java持久化API(Java Persistence API,简称JPA)的专著,由Apress出版社于2013年10月出版。这本书是JPA 2.2版本的详细指南,旨在帮助开发者深入理解和有效利用...

    SpringBoot + SpringSecurity + JPA 实现用户角色权限登录认证

    总结来说,本项目展示了如何利用SpringBoot、SpringSecurity和JPA在IntelliJ IDEA环境下构建一个完整的用户角色权限管理系统,通过security.sql和security-jpa这两个关键组件,实现了数据初始化和核心业务逻辑的构建...

    SpringBoot+JPA+LayUI商城系统源码.zip

    - **用户管理**:包括用户注册、登录、个人信息管理、权限控制等,可能使用Spring Security进行认证和授权。 - **库存管理**:实时更新商品库存,确保销售与库存同步。 - **支付集成**:与第三方支付平台(如支付宝...

    解决SpringDataJPA报错:org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null w

    用SpringBoot + Spring Data JPA操作数据库 项目启动的时候 报了一个错 SpringBoot的版本是2.2.6.RELEASE org.springframework.beans.factory.BeanCreationException: Error creating bean with name '...

    仓库管理系统,SpringBoot+Spring Data JPA+......zip

    【标题】"仓库管理系统,SpringBoot+Spring Data JPA+......zip" 提示我们这是一个基于Java技术栈,特别是SpringBoot和Spring Data JPA框架开发的仓库管理系统的毕业设计项目。这个系统很可能旨在实现仓库的自动化...

    jpa-java持久化API.ppt

    详细的jpa-java持久化API.ppt

    springboot+jpa+security用户权限

    综上所述,这个项目使用Spring Boot作为基础框架,通过JPA连接MySQL数据库处理数据,同时利用Spring Security实现用户权限管理,为开发者提供了一个安全、高效的Web应用模板。开发者可以根据自己的需求进行扩展和...

    管理系统系列--仓库管理系统,SpringBoot+Spring Data JPA+......zip

    【标题】"管理系统系列--仓库管理系统,SpringBoot+Spring Data JPA+......zip" 提供了一个关于构建仓库管理系统的项目框架,它利用了Spring Boot和Spring Data JPA等技术。这个系统旨在自动化仓库操作,提高库存...

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中英对照版.zip

    赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...

    管理系统系列--基于 Spring Boot、 Spring Data JPA、 Spring Security、V.zip

    - 它提供了身份验证和授权机制,可以轻松地实现登录、权限控制、会话管理等功能。 - 使用Spring Security,开发者可以定义访问控制规则,限制对特定资源的访问,从而保护系统安全。 4. **文件名列表(kwan...

    基于SpringBoot+Thymeleaf+JPA的博客系统源码.zip

    1、基于SpringBoot+Thymeleaf+JPA的博客系统源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 ...

    Java Web高级编程 涵盖WebSockets、Spring Framework、JPA Hibernate和Spring Security.pdf

    Nicholas S. Williams是Java和相关技术领域的一位著名专家。...Nick大量参与了开源社区工作,为Apache Log4J、Apache Tomcat、Jackon Mapper、Spring Framework和Spring Security等项目贡献了bug修复、新特性和文档。

    spring boot jpa security

    Spring Boot JPA与Security是两个在Java开发领域中极为重要的技术框架,它们分别专注于数据访问和应用程序的安全管理。本文将深入探讨这两个框架的核心概念、如何整合使用以及在实际项目中的应用。 Spring Boot是由...

    spirng MVC4+data jpa+spring Security pom.xml

    测试通过,集成了spirng MVC4+data jpa+spring Security pom.xml

    02_JPA详解_JPA开发环境和思想介绍.zip

    **JPA(Java Persistence API)详解 - 开发环境与核心思想** JPA,全称Java Persistence API,是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库中。它是ORM(Object-Relational Mapping)的一种实现...

    hibernate-jpa-2.1-api-1.0.0.final.jar.zip

    Hibernate最初作为一个独立的ORM框架,后来成为了JPA规范的参考实现之一。JPA提供了一套标准API,允许开发者在不依赖特定ORM工具的情况下编写数据库操作代码。而Hibernate通过实现JPA规范,使得开发者可以在享受...

Global site tag (gtag.js) - Google Analytics