4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
Acegi Security -- Spring下最优秀的安全系统_cfhgcvb..._CSDN博客
来自 : CSDN技术社区 发布时间:2021-03-25


afterAclCollectionRead会在拦截的方法执行结束的时候执行。主要的作用就是在返回的List中挨个检查domainObject的操作权限 然后根据requirePermission来剔除不符合的domainObject。


4.3 使用RuleEngine设置的ACL规则

在SpringSide里使用了RuleEngine来设置ACL规则 具体规则见
bookstore-sample/resources/rules/drl



五 FAQ 


5.1 FAQ

Q:   能否脱离Spring框架来使用Acegi?
A:  虽然Acegi 没有要求必须使用Spring Framework 但事实上Acegi很大程度上利用了Spring的IOC和AOP,很难脱离Spring的单独使用。    
Q:  Acegi有对xfire的支持吗?
A: 有,详见http://jira.codehaus.org/browse/XFIRE-389    
Q: 为何无论怎么设置都返回到登陆页面无法成功登陆?
A:  检查登陆页面或登陆失败页面是否只有ROLE_ANONYMOUS权限

5.2 Acegi 补习班

要了解Acegi,首先要了解以下几个重要概念




Authentication
Authentication对象包含了principal, credentials 和 authorities(authorities要赋予给principal的),同时也可以包含一些附加的认证请求信息,如TCP/IP地址和Session id等。

SecurityContextHolder
SecurityContextHolder包含ThreadLocal私有属性用于存取SecurityContext, SecurityContext包含Authentication私有属性, 看以下一段程序


public void getSecurityContextInformations() {
  SecurityContext sc SecurityContextHolder.getContext();
  Authentication auth sc.getAuthentication();
  Object principal auth.getPrincipal();
  if (principal instanceof UserDetails) {
   //用户密码
   String password ((UserDetails) principal).getPassword();
   //用户名称
   String username ((UserDetails) principal).getUsername();
   //用户权限
   GrantedAuthority[] authorities ((UserDetails) principal).getAuthorities();
   for (int i i authorities.length; i ) {
    String authority authorities[i].getAuthority();
   }
  }
  Object details auth.getDetails();
  if (details instanceof WebAuthenticationDetails) {
   //用户session id
   String SessionId ((WebAuthenticationDetails) details).getSessionId();
  }
 }


AuthenticationManager
通过Providers验证在当前 ContextHolder中的Authentication对象是否合法。    
AccessDecissionManager
经过投票机制来审批是否批准操作    
RunAsManager
当执行某个操作时,RunAsManager可选择性地替换Authentication对象    
Interceptors
拦截器(如FilterSecurityInterceptor,JoinPoint,MethodSecurityInterceptor等)用于协调授权,认证等操作


CREATE TABLE  acl_object_identity (
id  IDENTITY NULL ,
object_identity VARCHAR_IGNORECASE( NULL ,
parent_object  INTEGER ,
acl_class VARCHAR_IGNORECASE( NULL ,
CONSTRAINT  unique_object_identity  UNIQUE (object_identity),
FOREIGN  (parent_object)  REFERENCES  acl_object_identity(id)
);
CREATE TABLE  acl_permission (
id  IDENTITY NULL ,
acl_object_identity  INTEGER NULL ,
recipient VARCHAR_IGNORECASE( NULL ,
mask  INTEGER NULL ,
CONSTRAINT  unique_recipient  UNIQUE (acl_object_identity, recipient),
FOREIGN  (acl_object_identity)  REFERENCES  acl_object_identity(id)
);

           

再分享一下我老师大神的人工智能教程吧。零基础 通俗易懂 风趣幽默 还带黄段子 希望你也加入到我们人工智能的队伍中来 https://blog.csdn.net/jiangjunshow

本文链接: http://acegi0.immuno-online.com/view-724509.html

发布于 : 2021-03-25 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616