JFinal+Shiro能否再简便些?

车开源 发布于 2014/04/03 20:22
阅读 3K+
收藏 2

@JFinal 你好,想跟你请教个问题:

最近关注Shiro,感觉它的身份、权限的认证很不错。

找到JFinal的shiroplugin,不过感觉还是有那么一点复杂,请使用过此插件的同学都分享下感受呢~

///////

弱弱的问句:freemarker能用Shiro的标签吗?

加载中
0
如梦技术
如梦技术
可以,请参考 @leon 的http://git.oschina.net/yinjun622/JFinal-Shiro-JDBC-Demo
车开源
车开源
关注中,谢谢
0
JFinal
JFinal

@玛雅牛 的shiro plugin看了没?  http://www.oschina.net/p/jfinalshiroplugin  还有最近新出的  JFinal Authority: http://www.oschina.net/p/jfinal-authority

木川瓦兹
木川瓦兹
回复 @车开源 : 我也觉得,加入Shiro后,需要动手术的地方太多了,感觉还不如自己写一个来的实在
车开源
车开源
这两个都看过了,可能是我对shiro的了解还不够深吧,总感觉很复杂,没jfinal那么简单利索
0
okk
okk

freemarker需要标签,我在github上找到了

0
Dreampie
Dreampie

jfinal-drampie  最简单的动态数据库权限

public class MyJdbcAuthzService implements JdbcAuthzService {
  @Override
  public Map<String, AuthzHandler> getJdbcAuthz() {
    //加载数据库的url配置
    Map<String, AuthzHandler> authzJdbcMaps = new HashMap<String, AuthzHandler>();
//    Map<String, AuthzHandler> authzJdbcMaps = new TreeMap<String, AuthzHandler>(
//        new Comparator<String>() {
//          public int compare(String k1, String k2) {
//            return new Integer(k2.length()).compareTo(k1.length());
//          }
//
//        });
    //遍历角色
    List<Role> roles = Role.dao.findAll();
    List<Permission> permissions = null;
    for (Role role : roles) {
      //角色可用
      if (role.getDate("daleted_at") == null) {
        permissions = Permission.dao.findByRole("", role.get("id"));
        //遍历权限
        for (Permission permission : permissions) {
          //权限可用
          if (permission.getDate("daleted_at") == null) {
            if (permission.getStr("url") != null && !permission.getStr("url").isEmpty()) {
              authzJdbcMaps.put(permission.getStr("url"), new JdbcPermissionAuthzHandler(permission.getStr("value")));
            }
          }
        }
      }
    }
    return authzJdbcMaps;
  }
}
--create role--

INSERT INTO sec_role(id,name, value, intro, pid,left_code,right_code,created_at)
VALUES (sec_role_id_seq.nextval,'超级管理员','R_ADMIN','',0,1,8, current_timestamp),
       (sec_role_id_seq.nextval,'系统管理员','R_MANAGER','',1,2,7,current_timestamp),
       (sec_role_id_seq.nextval,'会员','R_MEMBER','',2,3,4,current_timestamp),
       (sec_role_id_seq.nextval,'普通用户','R_USER','',2,5,6,current_timestamp);

--create permission--
INSERT INTO sec_permission(id, name, value, url, intro,pid,left_code,right_code, created_at)
VALUES (sec_permission_id_seq.nextval,'管理员目录','P_D_ADMIN','/admin/**','',0,1,6,current_timestamp),
       (sec_permission_id_seq.nextval,'角色权限管理','P_ROLE','/admin/role/**','',1,2,3,current_timestamp),
       (sec_permission_id_seq.nextval,'用户管理','P_USER','/admin/user/**','',1,4,5,current_timestamp),
       (sec_permission_id_seq.nextval,'会员目录','P_D_MEMBER','/member/**','',0,9,10,current_timestamp),
       (sec_permission_id_seq.nextval,'普通用户目录','P_D_USER','/user/**','',0,11,12,current_timestamp);
//如果系统不重启需要加载新权限到全局过滤
            ShiroKit.addJdbcAuthz(authority.getStr("url"),authority.getStr("auth_key"));

返回顶部
顶部