文档章节

JFinal 整合 Shiro

浮躁的码农
 浮躁的码农
发布于 2015/12/03 09:14
字数 589
阅读 65
收藏 0

(例子+源码 http://my.oschina.net/smile622/blog/203459)

最近整合JFinal和Shiro遇到的问题,希望能给你们提示与帮助。

首先,JFinal和Shiro本人都是刚刚接触,JFinal上手很快,但Shiro上手比较费劲,看了很长时间的文档。

下面说一下整合JFinal配置这里就不说了。

按照官方Shiro配置
1、添加shiro-all-1.2.1.jar  包括Shiro所依赖的jar包commons-beanutils-1.8.3.jar、commons-logging-1.1.3.jar和ehcache-core-2.6.6.jar

2、配置web.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
 
 
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3、配置Shiro.ini (该文件Shiro默认读取路径为classpath)   
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[main]
 
#realm
myRealm = com.myweb.ext.shiro.MyShiroRealm
securityManager.realm = $myRealm
 
 
#cache
shiroCacheManager = org.apache.shiro.cache.ehcache.EhCacheManager
shiroCacheManager.cacheManagerConfigFile = classpath:ehcache-shiro.xml
securityManager.cacheManager = $shiroCacheManager
 
 
#session
sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
sessionDAO.activeSessionsCacheName = shiro-activeSessionCache
sessionManager.sessionDAO = $sessionDAO
securityManager.sessionManager = $sessionManager
securityManager.sessionManager.globalSessionTimeout =360000

这里自己重写一个MyShiroRealm,没有使用默认的ehcache.xml,原因是怕有缓存名称冲突,我的echcache-shiro.xml   
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<ehcache name="shiro">
    <diskStore path="java.io.tmpdir/shiro-ehcache"/>
 
    <defaultCache
            maxElementsInMemory="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="false"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="120"
            />
 
    <cache name="myRealm.authorizationCache"
           maxElementsInMemory="10000"
           overflowToDisk="true"
           eternal="true"
           timeToLiveSeconds="0"
           timeToIdleSeconds="0"
           diskPersistent="true"
           diskExpiryThreadIntervalSeconds="600">
    </cache>   
         
    <cache name="shiro-activeSessionCache"
           maxElementsInMemory="10000"
           overflowToDisk="true"
           eternal="true"
           timeToLiveSeconds="0"
           timeToIdleSeconds="0"
           diskPersistent="true"
           diskExpiryThreadIntervalSeconds="600"/>
</ehcache>

其实这样在JFinal就整合好了Shiro,剩下的就是在开发过程中使用Shiro了。   

下面说一下整合工程中我遇到的问题

在配置过程中我遇到的问题是缓存异常:
起初Shiro与JFinal整合的时候自己写一个ShiroPlugin.class

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
publicclassShiroPluginimplementsIPlugin {
 
@Override
publicbooleanstart() {
Factory<SecurityManager> factory =newIniSecurityManagerFactory(
"classpath:shiro.ini");
<preclass="brush:java; toolbar: true; auto-links: false;">SecurityManager securityManager<span style="font-size:9pt;line-height:1.5;"> = factory.getInstance();</span></pre>
SecurityUtils.setSecurityManager(securityManager);
returntrue;
}
@Override
publicbooleanstop() {
returnfalse;
}
}


然后在JFinal配置类中添加了   


me.add(new ShiroPlugin());   


就是因为这一段代码困扰了我很长的时间,起初以为是自己shiro配置不对,其实在启动项目的时候shiro已经默认启动好了,如果JFinal再加载shiro,那么会出现ehcache异常,提示ehcache已经存在不能创建,虽然再该问题上我话了很长的时间,但对shiro有了更深的认识,分享一下能给你带来帮助。   

本文转载自:http://my.oschina.net/smile622/blog/135098?p=1

浮躁的码农

浮躁的码农

粉丝 76
博文 915
码字总数 178801
作品 0
松江
程序员
私信 提问
JFinal 整合 Shiro

最近整合JFinal和Shiro遇到的问题,希望能给你们提示与帮助。 首先,JFinal和Shiro本人都是刚刚接触,JFinal上手很快,但Shiro上手比较费劲,看了很长时间的文档。 下面说一下整合JFinal配置...

leon_rock
2013/06/02
8.3K
10
JFinal的Shiro权限管理插件 2.0 版发布,支持JFinal 2.0

JFinal的Shiro权限管理插件 更新说明: 1)支持JFinal2.0 2)添加了一些实际项目中的代码供参考。 3)由于shiro需要与具体的业务整合才能使用,所以这个插件仅仅是方便在jfinal中使用shiro。...

玛雅牛
2015/08/18
6.1K
24
JFinal如何与shiro整合开发?

JFinal如何与shiro整合开发? @JFinal,问一个问题: 需要在项目中用shiro来做授权和角色管理,不知道如何与jfinal整合?

Qinworks
2012/12/13
3.4K
10
JFinal-Beetl-Shiro(JdbcRealm)-例子

JFinal-Shiro-JDBC-Demo http://git.oschina.net/yinjun622/JFinal-Shiro-JDBC-Demo 简单实现@JFinal与Shiro整合例子 1、工程通过Eclipse直接导入,部署到tomcat中; 2、新建jfinalshiro数据......

leon_rock
2014/02/27
5.4K
12
jfinal 官方文档可以多一点 和其它框架的整合文档吗?

@JFinal 你好,想跟你请教个问题:该怎么形容我的心情尼?很纠结,写了一大段,我还是删了,重新简短点说,虽然感觉对你提这个要求有点不切实际,就是jfinal和第3方面框架的整合文档==0,给人...

熊猫你好
2017/03/21
302
2

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部