Spring Securityの簡単な配置を詳しく説明します。


開発環境
  • maven
  • idea
  • jdk 1.8
  • tomcat 8
  • spring mvc+spring securityを設定します。
    pom.xml
    
     <properties>
      <spring.version>4.3.8.RELEASE</spring.version>
      <spring-sercurity.version>4.2.2.RELEASE</spring-sercurity.version>
     </properties>
    
    
     <dependencies>
      <!-- Spring 4 dependencies -->
    
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context</artifactId>
       <version>${spring.version}</version>
    
      </dependency>
    
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-webmvc</artifactId>
       <version>${spring.version}</version>
      </dependency>
    
      <!-- Spring Security -->
      <dependency>
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-core</artifactId>
       <version>${spring-sercurity.version}</version>
      </dependency>
    
      <dependency>
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-web</artifactId>
       <version>${spring-sercurity.version}</version>
      </dependency>
    
      <dependency>
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-config</artifactId>
       <version>${spring-sercurity.version}</version>
      </dependency>
     </dependencies>
    
    
    spring mvcは4.3.8バージョンを使用しています。spring securityは4.2.2バージョンを使用しています。
    spring-mvc-servlet.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-4.0.xsd">
    
     <context:component-scan base-package="com.controller" />
    
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix">
       <value>/WEB-INF/pages/</value>
      </property>
      <property name="suffix">
       <value>.jsp</value>
      </property>
     </bean>
    </beans>
    
    
    spring-security.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans:beans
      xmlns="http://www.springframework.org/schema/security"
      xmlns:beans="http://www.springframework.org/schema/beans"
      xmlns:p="http://www.springframework.org/schema/p"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/security
        http://www.springframework.org/schema/security/spring-security.xsd">
    
     <http auto-config="true" >
      <intercept-url pattern="/**" access="hasRole('ROLE_USER')"/>
     </http>
    
     <authentication-manager>
      <authentication-provider>
       <user-service>
        <user name="admin" password="123456" authorities="ROLE_USER"/>
       </user-service>
      </authentication-provider>
     </authentication-manager>
    </beans:beans>
    
    
    web.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://java.sun.com/xml/ns/javaee"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
       id="WebApp_ID" version="3.0">
     <display-name>Archetype Created Web Application</display-name>
    
     <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
    
     <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
       classpath:spring-mvc-servlet.xml,
       classpath:spring-security.xml
      </param-value>
     </context-param>
    
     <!-- spring mvc -->
     <servlet>
      <servlet-name>spring-mvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath*:spring-mvc-servlet.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
      <servlet-name>spring-mvc</servlet-name>
      <url-pattern>/</url-pattern>
     </servlet-mapping>
    
     <!-- spring security -->
     <filter>
      <filter-name>springSecurityFilterChain</filter-name>
      <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
     </filter>
    
     <filter-mapping>
      <filter-name>springSecurityFilterChain</filter-name>
      <url-pattern>/*</url-pattern>
     </filter-mapping>
    
     <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
    </web-app>
    
    
    テスト
    springはすべての要求をブロックします。ログインしていないと、システムはspring securityのデフォルトの登録ページにジャンプします。
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。