Java,SpringSecurity安全框架的简单使用及如何配置文件,权限角色管理,登录失败处理器,登录成功处理器,BCrypt加密法,权限控制注解,权限角色控制表

本文详细介绍了SpringSecurity安全框架的使用,包括jar包导入、web.xml配置、spring-security.xml配置,以及登录、登出、权限控制、BCrypt加密等核心功能。此外,还涉及数据库表设计,用于权限角色控制。通过实例展示了如何配置登录成功和失败处理器,以及在Controller中使用表达式进行权限控制。
摘要由CSDN通过智能技术生成

本文非常非常长,希望大家有足够时间及耐心阅读,直接复制代码跑通程序大概也得半个钟,框架使用简单,配置多

废话不说,直接做,做完就懂了,不懂再做一遍,培养动手能力

一、导入jar包(此处只导入Spring security相关jar包)   本次测试使用SSM框架测试

<spring.version>5.0.10.RELEASE</spring.version>

 

<dependency>

    <groupId>org.springframework.security</groupId>

    <artifactId>spring-security-web</artifactId>

    <version>${spring.version}</version>

</dependency>

<dependency>

    <groupId>org.springframework.security</groupId>

    <artifactId>spring-security-config</artifactId>

    <version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework.security</groupId>

<artifactId>spring-security-taglibs</artifactId>

<version>${spring.version}</version>

</dependency>

二、配置web.xml:过滤器最好放在其他过滤器的最前面
<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>

三、创建spring-security.xml(需要在applicationContext.xml文件中导入),

配置文件中多处引用我们自己创建的类,后续有图描述,可以直接下拉到第十二个标题,现在位置是第三个标题

导入语句:<import resource="spring-security.xml"/>   <!-- 漏导入会报NoBeanspringSecurityFilterChain这个错误 -->

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:sec="http://www.springframework.org/schema/security"
       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
        http://www.springframework.org/schema/security
        http://www.springframework.org/schema/security/spring-security-4.2.xsd ">
    <!--扫描-->
    <context:component-scan base-package="com.it.security"/>
    <!--允许代码上使用注解(3种类型都可以,我们常用的是pre-post-annotations),
    由于这个文件导入父容器,所以springmvc可以使用父容器的配置,会自动扫描controller上的注解-->
    <sec:global-method-security
            secured-annotations="enabled" jsr250-annotations="enabled" pre-post-annotations="enabled"/>


    <!-- 静态资源,不用权限 -->
    <sec:http pattern="/resources/**" security="none"/>
    <sec:http pattern="/verify/**" security="none"/>
    <sec:http pattern="/login" security="none"/>
    <sec:http pattern="/user/register.*" security="none"/>
    <sec:http pattern="/favicon.ico" security="none"/>
    <!--<sec:http pattern="/logindo" security="none"/>注意千万不要在静态资源这里设置登录提交网址,会让请求无法进入spring security体系-->

    <!--这里设置请求,包括路径拦截,登录,登出配置等-->
    <sec:http use-expressions="true" auto-config="true" entry-point-ref="authenticationProcessingFilterEntryPoint">
        <sec:headers>
            <sec:frame-options policy="SAMEORIGIN"/>
        </sec:headers>

        <!--路径拦截设置-->
        <sec:intercept-url pattern="/**" access="permitAll"/>
        <!--登录参数设置-->
        <!--
            

1.登陆失败跳转页面
            2.form表单的账号标签name
            3.form表单的密码标签name
            4.form表单提交的请求url,一定要与html标签的值一致,如果控制器有写RequestMapping注解,请填上
            5.登陆成功后跳转的页面
            6.登陆完后是否跳转到target-url,false代表调回上一个页面

           7.自定义登录成功类

           8.自定义登录失败类

            定义7和8 之后,5和6就废了,可以删除亦可保留


        -->


        <sec:form-login login-page="/member/login"
                        username-parameter="loginname"
                        password-parameter="loginpwd"
                        login-processing-url="/member/yy"
                        default-target-url="/member/my"
                        always-use-default-target="false"
                        authentication-success-handler-ref

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值