学习Spring-security(1)

会有一股神秘感。 提交于 2019-12-03 01:34:48

        注:我写这系列文章主要是记录我的搭建一些心得,以及代码。

        Spring-Security是Spring提供的一整套完整的权限控制机制,比较简单粗暴,直接通过配置文件的配置

直接来判断你是Pass or Out。而不用传统的去发送请求给后台代码,后台代码查询数据库,判断是否有访问资源的权限,然后返回结果。还有一点就是Spring-Security可以直接在内存层面进行过滤

        Spring-Security环境的搭建。

        这里我使用的是MyEclipse 9.0M1+JDK1.7+tomcat 6.0

  1. 先下载Maven以及Tomcat的对应的文件
    1. 下载Maven链接:http://maven.apache.org/download.cgi
    2. 下载Tomcat链接:http://tomcat.apache.org/
  2. 然后配置Myeclipse 使用下载的Maven
    1. window-》prefrences-》maven-》user setting 中配置User Settings (apache-maven-3.3.9\conf\settings.xml)
    2. window-》prefrences-》maven-》installations 中加入Maven主目录
  3. 配置Tomcat/conf/tomcat_users.xml,增加一个超级用户
    1. <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"/> 
  4. 配置Maven/conf/settings.xml配置文件 加入admin/admin用户
    1. <server>  
          <id>tomcat</id>  
          <username>admin</username>  
          <password>admin</password>  
      </server> 

       

  5. 新建一个Maven Project 在pom.xml文件里面加入如下依赖
      1.  <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包           

    1.          解决方案二:修改scope属性为provided,Maven提供了scope的几个属性意思如下

               * compile,缺省值,适用于所有阶段,会随着项目一起发布。 
               * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
               * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
               * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
               * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

  6. 配置Maven的JDK换进变量
    1. 选中一个JDk后再VM arguments里面设置如下的变量: -          Dmaven.multiModuleProjectDirectory=$M2_HOME
  7. 最后右键项目 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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!