注:我写这系列文章主要是记录我的搭建一些心得,以及代码。
Spring-Security是Spring提供的一整套完整的权限控制机制,比较简单粗暴,直接通过配置文件的配置
直接来判断你是Pass or Out。而不用传统的去发送请求给后台代码,后台代码查询数据库,判断是否有访问资源的权限,然后返回结果。还有一点就是Spring-Security可以直接在内存层面进行过滤
Spring-Security环境的搭建。
这里我使用的是MyEclipse 9.0M1+JDK1.7+tomcat 6.0
- 先下载Maven以及Tomcat的对应的文件
- 下载Maven链接:http://maven.apache.org/download.cgi
- 下载Tomcat链接:http://tomcat.apache.org/
- 然后配置Myeclipse 使用下载的Maven
- window-》prefrences-》maven-》user setting 中配置User Settings (apache-maven-3.3.9\conf\settings.xml)
- window-》prefrences-》maven-》installations 中加入Maven主目录
- 配置Tomcat/conf/tomcat_users.xml,增加一个超级用户
-
<role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin" roles="manager-gui,manager-script, manager-jmx,manager-status,admin-script,admin-gui"/>
-
- 配置Maven/conf/settings.xml配置文件 加入admin/admin用户
-
<server> <id>tomcat</id> <username>admin</username> <password>admin</password> </server>
-
- 新建一个Maven Project 在pom.xml文件里面加入如下依赖
-
-
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <springversion>3.1.1.RELEASE</springversion> <junitversion>3.8.1</junitversion> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-asm</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${springversion}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>3.2.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>3.2.0.RELEASE</version> </dependency> </dependencies>
此处引入了Spring的一系列核心jar包以及依赖包 注:注意其中的javax.servlet 这个依赖,因为这个依赖会和Tomcat里面的lib的jar包冲突,导致报转换异常
java.lang.ClassCastException: org.springframework.web.filter.DelegatingFilterProxy cannot be cast to javax.servlet.Filter
解决方案一:删除Tomcat里面的servlet.api.jar包
-
-
解决方案二:修改scope属性为provided,Maven提供了scope的几个属性意思如下
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
-
- 配置Maven的JDK换进变量
- 选中一个JDk后再VM arguments里面设置如下的变量: - Dmaven.multiModuleProjectDirectory=$M2_HOME
- 最后右键项目 run as - maven build 即可
最后Maven会自动的打包项目部署到tomcat里面,项目已经启动
参考文档:http://blog.csdn.net/column/details/springsecurity.html
http://blog.csdn.net/maosijunzi/article/details/21160965
http://blog.csdn.net/lufeipeng/article/details/10469709
来源:oschina
链接:https://my.oschina.net/u/2970507/blog/786359