Skip to content

Commit 0d0548b

Browse files
committed
添加Shirodemo第一个版本源码,正在学习研究shiro
0 parents  commit 0d0548b

File tree

117 files changed

+2780
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+2780
-0
lines changed

.classpath

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src"/>
4+
<classpathentry kind="src" path="config"/>
5+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
6+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/IKAnalyzer2012_u6.jar"/>
7+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ant.jar"/>
8+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/antlr-2.7.7.jar"/>
9+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aopalliance.jar"/>
10+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjweaver.jar"/>
11+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/avro-1.5.1.jar"/>
12+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bonecp-0.7.1.RELEASE.jar"/>
13+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bonecp-provider-0.7.1-rc2.jar"/>
14+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bonecp-spring-0.7.1-rc1.jar"/>
15+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cglib-nodep-2.1_3.jar"/>
16+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-beanutils.jar"/>
17+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-collections.jar"/>
18+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-dbcp-1.2.2.jar"/>
19+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-fileupload-1.2.1.jar"/>
20+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-io.jar"/>
21+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang-2.5.jar"/>
22+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging-1.1.jar"/>
23+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-pool-1.3.jar"/>
24+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/dom4j-1.6.1.jar"/>
25+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ehcache-core-2.6.2.jar"/>
26+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ezmorph-1.0.4.jar"/>
27+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/freemarker-2.3.15.jar"/>
28+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/guava-12.0.1.jar"/>
29+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-commons-annotations-4.0.1.Final.jar"/>
30+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-core-4.1.8.Final.jar"/>
31+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-entitymanager-4.1.8.Final.jar"/>
32+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
33+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jackson-core-asl-1.9.2.jar"/>
34+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jackson-mapper-asl-1.9.2.jar"/>
35+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jakarta-oro.jar"/>
36+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/javassist-3.15.0-GA.jar"/>
37+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jboss-logging-3.1.0.GA.jar"/>
38+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>
39+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/json-lib-2.1.jar"/>
40+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/json-lib-2.3-jdk15.jar"/>
41+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jstl.jar"/>
42+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jtds-1.2.jar"/>
43+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/junit-4.8.1.jar"/>
44+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/log4j-1.2.16.jar"/>
45+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.1.6-bin.jar"/>
46+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.aop-3.1.1.RELEASE.jar"/>
47+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.asm-3.1.1.RELEASE.jar"/>
48+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.aspects-3.1.1.RELEASE.jar"/>
49+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.beans-3.1.1.RELEASE.jar"/>
50+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.context-3.1.1.RELEASE.jar"/>
51+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.context.support-3.1.1.RELEASE.jar"/>
52+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.core-3.1.1.RELEASE.jar"/>
53+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.expression-3.1.1.RELEASE.jar"/>
54+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.instrument-3.1.1.RELEASE.jar"/>
55+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.instrument.tomcat-3.1.1.RELEASE.jar"/>
56+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.jdbc-3.1.1.RELEASE.jar"/>
57+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.jms-3.1.1.RELEASE.jar"/>
58+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.orm-3.1.1.RELEASE.jar"/>
59+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.oxm-3.1.1.RELEASE.jar"/>
60+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.test-3.1.1.RELEASE.jar"/>
61+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.transaction-3.1.1.RELEASE.jar"/>
62+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.web-3.1.1.RELEASE.jar"/>
63+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.web.portlet-3.1.1.RELEASE.jar"/>
64+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/org.springframework.web.servlet-3.1.1.RELEASE.jar"/>
65+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/shiro-all-1.2.0.jar"/>
66+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/slf4j-api-1.6.1.jar"/>
67+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/slf4j-log4j12-1.5.8.jar"/>
68+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/slf4j-nop-1.6.1.jar"/>
69+
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sqljdbc4.jar"/>
70+
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
71+
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
72+
</classpath>

.mymetadata

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project-module
3+
type="WEB"
4+
name="shirodemo"
5+
id="myeclipse.1370879045972"
6+
context-root="/shirodemo"
7+
j2ee-spec="5.0"
8+
archive="shirodemo.war">
9+
<attributes>
10+
<attribute name="webrootdir" value="WebRoot" />
11+
</attributes>
12+
</project-module>
13+

.project

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>shirodemo</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
<buildCommand>
14+
<name>org.eclipse.jdt.core.javabuilder</name>
15+
<arguments>
16+
</arguments>
17+
</buildCommand>
18+
<buildCommand>
19+
<name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
20+
<arguments>
21+
</arguments>
22+
</buildCommand>
23+
<buildCommand>
24+
<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
25+
<arguments>
26+
</arguments>
27+
</buildCommand>
28+
<buildCommand>
29+
<name>org.eclipse.wst.validation.validationbuilder</name>
30+
<arguments>
31+
</arguments>
32+
</buildCommand>
33+
<buildCommand>
34+
<name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
35+
<arguments>
36+
</arguments>
37+
</buildCommand>
38+
</buildSpec>
39+
<natures>
40+
<nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>
41+
<nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
42+
<nature>org.eclipse.jdt.core.javanature</nature>
43+
</natures>
44+
</projectDescription>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
eclipse.preferences.version=1
2+
encoding/src=UTF-8

WebRoot/META-INF/MANIFEST.MF

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Manifest-Version: 1.0
2+
Class-Path:
3+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<beans xmlns="http://www.springframework.org/schema/beans"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:aop="http://www.springframework.org/schema/aop"
5+
xmlns:tx="http://www.springframework.org/schema/tx"
6+
xmlns:context="http://www.springframework.org/schema/context"
7+
xmlns:p="http://www.springframework.org/schema/p"
8+
xmlns:cache="http://www.springframework.org/schema/cache"
9+
xmlns:jaxws="http://cxf.apache.org/jaxws"
10+
xsi:schemaLocation="
11+
http://www.springframework.org/schema/beans
12+
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
13+
http://www.springframework.org/schema/tx
14+
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
15+
http://www.springframework.org/schema/aop
16+
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
17+
http://www.springframework.org/schema/context
18+
http://www.springframework.org/schema/context/spring-context-3.1.xsd
19+
http://www.springframework.org/schema/cache
20+
http://www.springframework.org/schema/cache/spring-cache-3.1.xsd
21+
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd ">
22+
<!-- 注解支持 -->
23+
<context:annotation-config />
24+
25+
<!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->
26+
<context:component-scan base-package="org.shiro.demo">
27+
<context:exclude-filter type="annotation"
28+
expression="org.springframework.stereotype.Controller" />
29+
</context:component-scan>
30+
31+
<!-- 属性文件位置 -->
32+
<context:property-placeholder location="classpath:jdbc.properties" />
33+
34+
<!-- 数据源 -->
35+
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
36+
destroy-method="close">
37+
<!-- 数据库驱动 -->
38+
<property name="driverClass" value="${jdbc.driverClassName}" />
39+
<!-- 相应驱动的jdbcUrl-->
40+
<property name="jdbcUrl" value="${jdbc.url}" />
41+
<!-- 数据库的用户名 -->
42+
<property name="username" value="${jdbc.username}" />
43+
<!-- 数据库的密码 -->
44+
<property name="password" value="${jdbc.password}" />
45+
<!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0 -->
46+
<property name="idleConnectionTestPeriod"
47+
value="${BoneCP.idleConnectionTestPeriod}" />
48+
<!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0 -->
49+
<property name="idleMaxAge" value="${BoneCP.idleMaxAge}" />
50+
<!-- 每个分区最大的连接数 -->
51+
<property name="maxConnectionsPerPartition"
52+
value="${BoneCP.maxConnectionsPerPartition}" />
53+
<!-- 每个分区最小的连接数 -->
54+
<property name="minConnectionsPerPartition"
55+
value="${BoneCP.minConnectionsPerPartition}" />
56+
<!-- 分区数 ,默认值2,最小1,推荐3-4,视应用而定 -->
57+
<property name="partitionCount"
58+
value="${BoneCP.partitionCount}" />
59+
<!-- 每次去拿数据库连接的时候一次性要拿几个,默认值:2 -->
60+
<property name="acquireIncrement"
61+
value="${BoneCP.acquireIncrement}" />
62+
<!-- 缓存prepared statements的大小,默认值:0 -->
63+
<property name="statementsCacheSize"
64+
value="${BoneCP.statementsCacheSize}" />
65+
<!-- 每个分区释放链接助理进程的数量,默认值:3,除非你的一个数据库连接的时间内做了很多工作,不然过多的助理进程会影响你的性能 -->
66+
<property name="releaseHelperThreads"
67+
value="${BoneCP.releaseHelperThreads}" />
68+
</bean>
69+
70+
<!-- JPA实体管理器工厂 -->
71+
<bean id="entityManagerFactory"
72+
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
73+
<property name="dataSource" ref="dataSource" />
74+
<property name="persistenceProvider" ref="persistenceProvider" />
75+
<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
76+
<property name="jpaDialect" ref="jpaDialect" />
77+
78+
<property name="packagesToScan" value="org.shiro.demo.entity" />
79+
80+
<property name="jpaProperties">
81+
<props>
82+
<prop key="hibernate.dialect">
83+
org.hibernate.dialect.MySQL5Dialect
84+
</prop>
85+
<prop key="hibernate.connection.driver_class">
86+
com.mysql.jdbc.Driver
87+
</prop>
88+
<prop key="hibernate.max_fetch_depth">3</prop>
89+
<prop key="hibernate.jdbc.fetch_size">18</prop>
90+
<prop key="hibernate.jdbc.batch_size">10</prop>
91+
<prop key="hibernate.hbm2ddl.auto">validate</prop><!-- validate/update/create -->
92+
<prop key="hibernate.show_sql">false</prop>
93+
<prop key="hibernate.format_sql">false</prop>
94+
<prop key="javax.persistence.validation.mode">none</prop>
95+
</props>
96+
</property>
97+
</bean>
98+
99+
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
100+
<property name="defaultEncoding" value="utf-8"></property>
101+
</bean>
102+
103+
<!-- 用于指定持久化实现厂商类 -->
104+
<bean id="persistenceProvider"
105+
class="org.hibernate.ejb.HibernatePersistence" />
106+
107+
<!-- 用于设置JPA实现厂商的特定属性 -->
108+
<bean id="jpaVendorAdapter"
109+
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
110+
<property name="database" value="MYSQL" />
111+
</bean>
112+
113+
<!-- 用于指定一些高级特性 -->
114+
<bean id="jpaDialect"
115+
class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
116+
117+
<!-- 事务管理器 -->
118+
<bean id="txManager"
119+
class="org.springframework.orm.jpa.JpaTransactionManager">
120+
<property name="entityManagerFactory"
121+
ref="entityManagerFactory" />
122+
</bean>
123+
124+
<!-- 注解式事务 -->
125+
<tx:annotation-driven transaction-manager="txManager" />
126+
127+
<bean id="securityManager"
128+
class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
129+
<property name="realm" ref="shiroDbRealm" />
130+
</bean>
131+
132+
<!-- 項目自定义的Realm -->
133+
<bean id="shiroDbRealm" class="org.shiro.demo.service.realm.ShiroDbRealm" ></bean>
134+
135+
<!-- Shiro Filter -->
136+
<bean id="shiroFilter"
137+
class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
138+
<property name="securityManager" ref="securityManager" />
139+
<property name="loginUrl" value="/" />
140+
<property name="successUrl" value="/system/main" />
141+
<property name="unauthorizedUrl" value="/system/error" />
142+
<property name="filterChainDefinitions">
143+
<value>
144+
/login = anon
145+
/validateCode = anon
146+
/** = authc
147+
</value>
148+
</property>
149+
</bean>
150+
</beans>

WebRoot/WEB-INF/classes/ehcache.xml

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="ehcache.xsd"
4+
updateCheck="true" monitoring="autodetect"
5+
dynamicConfig="true">
6+
7+
<defaultCache maxElementsInMemory="10000"
8+
eternal="false"
9+
timeToIdleSeconds="120"
10+
timeToLiveSeconds="120"
11+
overflowToDisk="true"
12+
maxElementsOnDisk="10000000"
13+
diskPersistent="false"
14+
diskExpiryThreadIntervalSeconds="120"
15+
memoryStoreEvictionPolicy="LRU" />
16+
17+
</ehcache>
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
jdbc.driverClassName=com.mysql.jdbc.Driver
2+
3+
jdbc.url=jdbc:mysql://localhost:3306/shirodemo?useUnicode=true&characterEncoding=UTF-8
4+
5+
jdbc.username=root
6+
7+
jdbc.password=root
8+
9+
BoneCP.idleConnectionTestPeriod=60
10+
11+
BoneCP.idleMaxAge=60
12+
13+
BoneCP.maxConnectionsPerPartition=5
14+
15+
BoneCP.minConnectionsPerPartition=1
16+
17+
BoneCP.partitionCount=3
18+
19+
BoneCP.acquireIncrement=2
20+
21+
BoneCP.statementsCacheSize=0
22+
23+
BoneCP.releaseHelperThreads=3
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
log4j.rootLogger=INFO,stdout,file
2+
3+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
4+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
5+
log4j.appender.stdout.Target=System.out
6+
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%c]-[%p] %m%n
7+
8+
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
9+
log4j.appender.file.File=${spring_springmvc_jpa.root}/shirodemo.log
10+
log4j.appender.file.layout=org.apache.log4j.PatternLayout
11+
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
12+
13+
log4j.logger.org.hibernate.tool.hbm2ddl=info
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)