zoukankan      html  css  js  c++  java
  • spring-security(1)

    这里简单介绍下spring security的使用

    添加依赖

    <org.springframework.security-version>4.1.0.RELEASE</org.springframework.security-version>
    
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-web</artifactId>
      <version>${org.springframework.security-version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-cas</artifactId>
      <version>${org.springframework.security-version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-config</artifactId>
      <version>${org.springframework.security-version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-core</artifactId>
      <version>${org.springframework.security-version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-crypto</artifactId>
      <version>${org.springframework.security-version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-taglibs</artifactId>
      <version>${org.springframework.security-version}</version>
    </dependency>
    

    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:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">
    
        <http auto-config="true">
            <!--intercept-url定义了一个权限控制的规则。
                    pattern:进行权限控制的url
                    access:需要什么权限,以逗号分隔的角色列表,只需拥有其中的一个角色就能成功访问
                -->
            <intercept-url pattern="/**" access="hasRole('role1')"/>
        </http>
    
        <beans:bean id="userService" class="com.yitop.feng.service.UserService"/>
    
        <!--
        authentication-manager元素指定了一个AuthenticationManager,其需要一个AuthenticationProvider来进行真正的认证,
        默认情况下authentication-provider对应一个UserDetailsService来获取用户信息(即查询数据库)。
        -->
        <authentication-manager>
            <authentication-provider user-service-ref="userService">
                <!-- 指定密码加密方式 -->
                <password-encoder hash="md5"/>
            </authentication-provider>
        </authentication-manager>
    </beans:beans>
    

    web.xml

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:spring-security.xml
        </param-value>
    </context-param>
    
    <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>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    

    userService

    /**
     * @author fengzp
     * @date 2017/3/23下午5:52
     * @email fengzp@gzyitop.com
     * @company 广州易站通计算机科技有限公司
     */
    public class UserService implements UserDetailsService {
    
        public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    
            username = "fengzp";
    
            String password = "E10ADC3949BA59ABBE56E057F20F883E";//123456
    
            List<GrantedAuthority> rolenames = new ArrayList<GrantedAuthority>();
            rolenames.add(new SimpleGrantedAuthority("role1"));
    
            //这里要注意,密码要小写
            User user = new User(username,password.toLowerCase(),rolenames );
    
            return user;
        }
    }
    

    测试

    打开首页可以看到一个登录页面,但是我并没有写这个登录页面,这个页面是当我们没有指定登录页面时,spring自动帮我们生成的。
    这里我写死了一个用户/密码:fengzp/123456,当用别的用户或者密码不正确的时候,页面就会报错。
    

  • 相关阅读:
    BZOJ 2157: 旅游 (2017.7.21 6:30-2017.7.21 15:38 今日第一题。。)
    洛谷 P1021 邮票面值设计
    洛谷 P2912 [USACO08OCT]牧场散步Pasture Walking
    COGS 2111. [NOIP2015普及]扫雷游戏
    洛谷 P3038 [USACO11DEC]牧草种植Grass Planting
    COGS 1439. [NOIP2013]货车运输
    COGS 908. 校园网
    codevs 1422 河城荷取
    codevs 1183 泥泞的道路
    洛谷 P3390 【模板】矩阵快速幂
  • 原文地址:https://www.cnblogs.com/andyfengzp/p/6610051.html
Copyright © 2011-2022 走看看