spring security自定义登陆和动态

本文介绍了如何在Spring Security环境中自定义登录过程和动态权限管理。首先,通过修改spring_security.xml配置文件来初始化设置。接着,创建了包括自定义过滤器、用户管理、决策器、资源源数据定义等相关类,以实现用户的认证和授权。在用户管理类中获取用户信息,决策器判断用户角色和资源访问权限。此外,还涉及到了登陆界面login.jsp和登陆成功后的index.jsp页面设计。
摘要由CSDN通过智能技术生成

   maven的jar包引入在spring security环境的构建中已经介绍过了.web.xml的配置也不变,不知道的小伙伴可以返回去看下配置的博客。下面我们就直接切入正题.

1.修改spring_security.xml的配置文件

    <?xml version="1.0" encoding="UTF-8"?>
<b:beans xmlns="http://www.springframework.org/schema/security"
xmlns:b="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-3.2.xsd  
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd">


<!--登录页面不过滤 -->
<http pattern="/login.jsp" security="none" />
<!-- 配置不过滤的资源(静态资源及登录相关) -->
<http pattern="/**/*.css" security="none"></http>
<http pattern="/**/*.jpg" security="none"></http>
<http pattern="/**/*.jpeg" security="none"></http>
<http pattern="/**/*.gif" security="none"></http>
<http pattern="/**/*.png" security="none"></http>
<http pattern="/js/*.js" security="none"></http>
<http pattern="/login.jsp" security="none"></http>
<!-- <http pattern="/getCode" security="none" /> -->  <!-- 不过滤验证码 -->
<http pattern="/test/**" security="none"></http><!-- 不过滤测试内容 -->
<!-- 一般用于对动态资源的过滤 -->
<http access-denied-page="/accessDenied.jsp">
<form-login login-page="/login.jsp" />
<!--访问/admin.jsp资源的用户必须具有ROLE_ADMIN的权限 -->
<intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" />
<!-- <intercept-url pattern="/index.jsp" access="ROLE_ADMIN"/> -->
<!--访问/**资源的用户必须具有ROLE_USER的权限 -->
<!-- <intercept-url pattern="/**" access="ROLE_USER" /> -->
<!-- 防止多个用户同时登陆一个账号 -->
<session-management>
<concurrency-control max-sessions="1"
error-if-maximum-exceeded="false" />
</session-management>
<!--增加一个filter,这点与 Acegi是不一样的,不能修改默认的filter了, 这个filter位于FILTER_SECURITY_INTERCEPTOR之前 -->
<custom-filter ref="myFilter" before="FILTER_SECURITY_INTERCEPTOR" />
</http>


<!--一个自定义的filter,必须包含 authenticationManager,accessDecisionManager,securityMetadataSource三个属性, 
我们的所有控制将在这三个类中实现 -->
<b:bean id="myFilter"
class="com.erdangjiade.spring.security.MyFilterSecurityInterceptor">
<b:property name="authenticationManager" ref="authenticationManager" />
<b:property name="accessDecisionManager" ref="myAccessDecisionManagerBean" />
<b:property name="securityMetadataSource" ref="securityMetadataSource" />
<
Spring Security中,可以通过配置来自定义登录页面。需要进行以下几个步骤: 1. 创建自定义的登录页面。可以在项目中创建一个JSP或HTML文件,用于显示登录表单。 2. 在Spring Security的配置文件中指定自定义的登录页面。可以使用`<security:form-login>`元素来配置登录页面的路径,例如:`<security:form-login login-page="/login.jsp" />`。其中,`login-page`属性指定了登录页面的路径。 3. 确保自定义的登录页面可以被匿名访问。可以使用`<security:intercept-url>`元素来配置URL的访问权限,例如:`<security:intercept-url pattern="/login.jsp" access="permitAll" />`。其中,`pattern`属性指定了匹配的URL路径,`access`属性指定了访问该URL的权限。 通过以上配置,您可以实现Spring Security自定义登录界面。请注意,在配置文件中的其他部分可能还有其他相关配置,比如配置认证信息、配置退出登录等。详细配置可以参考引用和引用中的示例代码和解释。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringSecurity实现自定义登录界面](https://blog.csdn.net/qq_38526573/article/details/103402060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值