Spring Security:spring安全框架(认证总结)

本文详细介绍了Spring Boot Security如何在不编写任何代码或配置的情况下,自动提供认证页面和逻辑。默认情况下,所有请求被拦截,未登录用户会被重定向到登录页面。登录信息默认为'user'和控制台输出的UUID密码。认证成功后,用户可访问其他资源,登录成功通常会返回上一页面。此外,可以通过配置文件自定义用户名和密码。同时,文章还讨论了认证成功和失败后的跳转策略,包括重定向和转发。最后,列举了各种请求地址及其对应请求方式。

1、任何maven web工程,只要依赖spring-boot-starter-security启动器,不需要编写任何代码,任何配置,自动提供一个认证页面和认证逻辑。
security框架,默认环境下,拦截所有的请求地址(/**),如果访问客户端未登录(未认证),则统一跳转到登录页面。
用户名:默认是user
密码:默认是启动时控制台输出的 UUID。每次启动都不同。
登录成功(认证成功)后,可以访问其他的任何资源。
默认情况下,认证成功后,返回到上一次访问地址。如果没有,则返回到项目的根(http://ip:port/)。

2、默认环境下的认证用户名与密码的配置:使用明文配置密码即可。
spring.security.user.name  # 建议,用户名最好使用双引号标记,用户名中不要包含空格。
spring.security.user.password  # 建议,密码最好使用双引号标记,密码中不要包含空格。

例外:
登录页面: get请求 /login
登录功能: post请求 /login
退出登录: post请求 /logout

3、请求参数名称自定义:用于解决前后端分离开发过程中,前端工程师定义页面时,表单参数名和java代码参数名不一致的问题。
认证是经由一个过滤器处理的。过滤器名称是UsernamePasswordAuthenticationFilter,过滤器中的方法attemptAuthentication用于处理登录请求。
过滤器中定义方法obtainUsername(HttpServletRequest),用于获取请求中的登录名,方法实现是request.getParameter(usernameParameter),
属性usernameParameter="username"。请求参数密码,获取方案,和用户登录名一样。
登录请求的用户名参数默认是username。密码参数默认是password。

4、认证成功后的跳转方式:
(1) 设置默认跳转路径: defaultSuccessUrl(String url) - 设置登录成功后的重定向地址。
仅在直接访问登录页面并登录成功后生效。如果访问其他地址,跳转到登录页面,登录成功后,默认重定向到上一次访问地址。
(2) 设置认证成功后的转发地址: successForwardU rl(String url) - 登录成功后的请求转发地址。一般不推荐设置。
在所有情况下生效。只要登录成功,一定请求转发到对应地址。
(3)successHandler(AuthenticationSuccessHandler) - AuthenticationSuccessHandler是接口。可以自定义实现。
5、可以参考方法successForwardUrl的源码,写接口实现。  推荐使用。认证失败后的跳转方式:
(1) 默认情况下,认证失败后,重定向到   登录页面?error  。
在FormLoginConfigurer中,有默认配置,如果未配置登录失败后的跳转地址。默认为  登录页面?error。
(2) failureUrl(String url) - 认证失败后,重定向到指定的地址。
(3) failureForwardUrl(String url) - 认证失败后,请求转发到指定的地址。要求转发后的地址必须可访问。否则有重定向到登录页面的可能。 不推荐
(4) failureHandler(AuthenticationFailureHandler) - 设置认证失败后的处理器。推荐

6、已有的各种请求地址: 各自对应的请求方式是什么?
(1) 登录页面  loginPage  GET请求,浏览器访问服务器,看登录页面。
(2) 登录请求  loginProcessingUrl  POST请求,浏览器访问服务器,提交form表单,使用POST请求方式提交表单。
(3)登录成功后的跳转地址
3.1 重定向地址  defaultSuccessUrl  GET请求,浏览器访问服务器,看成功登录后的页面或资源。
3.2 转发地址    successForwardUrl  POST请求,延用上一次请求(登录请求)的请求对象和请求方式。
(4) 登录失败后的跳转地址
4.1 重定向地址  failureUrl  GET请求,浏览器访问服务器,看登录失败后的页面或资源。
4.2 转发地址    failureForwardUrl  POST请求,延用上一次请求(登录请求)的请求对象和请求方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸叫我照顾大海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值