关于 SpringSecurity 的 <sec:authorize url=""> 标签的使用问题

原文连接 : http://hi.baidu.com/gestapo8/item/4e78d3d78dae3095270ae745

 

在这里我想说一下 上面连接中的文章根本不能解决问题

 

以下是SpringSecurity的 源码 

SpringSecurity的 源码

 

SpringSecurity 调用DefaultWebInvocationPrivilegeEvaluator 过程

 

SpringSecurity 默认DefaultWebInvocationPrivilegeEvaluator 中的内容

 

按照 文章中所说只要 在 SpringContext 中 建立一个我们自己的 DefaultWebInvocationPrivilegeEvaluator 就可以了

但是从源码上看 我们建立的 DefaultWebInvocationPrivilegeEvaluator 永远不会被执行到.

Spring Security 是一个强大而灵活的安全框架,可以很容易地为Spring应用程序提供认证和授权功能。下面是Spring Security的配置示例,其中包括登录和注销功能: 1. 配置Spring Security依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>5.3.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>5.3.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-taglibs</artifactId> <version>5.3.3.RELEASE</version> </dependency> ``` 2. 配置Spring Security 在Spring配置文件中添加以下配置: ``` <security:http auto-config="true" use-expressions="true"> <security:intercept-url pattern="/login" access="permitAll" /> <security:intercept-url pattern="/logout" access="permitAll" /> <security:intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> <security:form-login login-page="/login" default-target-url="/" authentication-failure-url="/login?error=true" /> <security:logout logout-url="/logout" logout-success-url="/login" /> </security:http> <security:authentication-manager> <security:authentication-provider> <security:user-service> <security:user name="admin" password="{noop}admin" authorities="ROLE_USER" /> </security:user-service> </security:authentication-provider> </security:authentication-manager> ``` 3. 配置登录和注销链接 在JSP页面中添加登录和注销链接: ``` <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> <sec:authorize access="!isAuthenticated()"> <a href="/login">Login</a> </sec:authorize> <sec:authorize access="isAuthenticated()"> <a href="/logout">Logout</a> </sec:authorize> ``` 4. 测试 启动应用程序并访问应用程序的首页。如果用户未登录,则应该看到登录链接。单击链接将显示登录表单。输入正确的凭据后,用户将被重定向到默认目标URL(/)。如果用户已经登录,则应该看到注销链接。单击链接将注销用户并将其重定向到登录页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值