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

1135

被折叠的 条评论
为什么被折叠?



