多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 12.3\. Hibernate的声明式安全机制 通常,Hibernate应用程序的声明式安全机制由会话外观层(session facade)所管理。 现在,Hibernate3允许某些特定的行为由JACC进行许可管理,由JAAS进行授权管理。 本功能是一个建立在事件框架之上的可选的功能。 首先,你必须要配置适当的事件监听器(event listener),来激活使用JAAS管理授权的功能。 ``` <listener type="pre-delete" class="org.hibernate.secure.JACCPreDeleteEventListener"/> <listener type="pre-update" class="org.hibernate.secure.JACCPreUpdateEventListener"/> <listener type="pre-insert" class="org.hibernate.secure.JACCPreInsertEventListener"/> <listener type="pre-load" class="org.hibernate.secure.JACCPreLoadEventListener"/> ``` 注意,`&lt;listener type="..." class="..."/&gt;`只是`&lt;event type="..."&gt;&lt;listener class="..."/&gt;&lt;/event&gt;`的简写,对每一个事件类型都必须严格的有一个监听器与之对应。 接下来,仍然在`hibernate.cfg.xml`文件中,绑定角色的权限: ``` <grant role="admin" entity-name="User" actions="insert,update,read"/> <grant role="su" entity-name="User" actions="*"/> ``` 这些角色的名字就是你的JACC provider所定义的角色的名字。