关注此头条号“互联网IT信息”——>私信发送 “京东html” ,即可得到源代码的获取方式。
本专栏前篇文章中介绍了HttpBasic模式,该模式比较简单,只是进行了通过携带Http的Header进行简单的登录验证,而且没有可以定制的登录页面,所以使用场景比较窄。
对于一个完整的应用系统,与登录验证相关的页面都是高度定制化的,非常美观而且提供多种登录方式。这就需要Spring Security支持我们自己定制登录页面,也就是本文给大家介绍的FormLogin模式登录认证模式。
在介绍相关内容之前,需要先搭建一个demo,新建一个项目spring-security-02,需要添加依赖如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
复制代码
除此之外其实还需要添加web、thymeleaf的依赖,这里就不在贴出来了
demo结构如下:
这里不再使用Security默认的页面,自己定制一个,代码如下:
单纯的一个表单登录页面,需要注意以下几个参数:
以上三个参数都可以在security通过配置的方式定义
这个是登录成功后跳转的首页,代码如下:
在security中一切的接口都称之为资源,下面新建两个测试接口,代码如下:
在介绍如何配置之前,先来看下formLogin模式登录的5个要素:
一般来说,使用权限认证框架的的业务系统登录验证逻辑是固定的,而资源访问控制规则和用户信息是从数据库或其他存储介质灵活加载的。但本文所有的用户、资源、权限信息都是代码配置写死的,旨在为大家介绍formLogin认证模式,如何从数据库加载权限认证相关信息我还会结合RBAC权限模型再写文章的。
针对上述5个的要素,formLogin配置代码如下:
首先,我们要继承WebSecurityConfigurerAdapter ,重写configure(HttpSecurity http) 方法,该方法用来配置登录验证逻辑。请注意看代码中的注释信息。
上述代码分为两个部分:
第一部分是formLogin配置段,用于配置登录验证逻辑相关的信息。如:登录页面、登录成功页面、登录请求处理路径等。
第二部分是authorizeRequests配置段,用于配置资源的访问控制规则
在上述的规则中配置了一些资源需要特定的角色才可以访问,比如user、admin,那么这些角色如何去指定呢?
在security中提供了配置的方式,代码如下:
上述的代码配置很简单,创建了两个用户且指定了角色,分别如下:
配置解释如下:
按照上述6个步骤基本实现了一个表单登录,下面测试一下
浏览器访问http://localhost:8081/hello2,第一次访问由于未登录会自动跳转到登录页面,如下图:
输入用户名和密码,由于/hello2这个资源需要admin的角色才能访问,因此必须用admin这个用户登录,否则将会报403的错误,登录成功后将能够正常访问
如果用户名或者密码错误将会触发.failureUrl("/login/page")这个配置,自动跳转到登录页面
在第5步的配置中,和登录结果相关的配置有如下两个:
这两个配置都是指定URL的方式:
但是在web应用开发过程中需求是千变万化的,有时需要我们针对登录结果做个性化处理,比如:
因此需要自定义的登录结果,这篇文章先介绍如何定制跳转页面,关于JSON格式数据就是前后端分离架构下需要用到,后文介绍
AuthenticationSuccessHandler接口是Security提供的认证成功处理器接口,我们只需要去实现它即可。但是通常来说,我们不会直接去实现AuthenticationSuccessHandler接口,而是继承SavedRequestAwareAuthenticationSuccessHandler 类,这个类会记住用户上一次请求的资源路径,比如/hello2这个路径,登录成功后将会自动跳转到/hello2这个页面而不是首页
代码如下:
这里我们同样没有直接实现AuthenticationFailureHandler接口,而是继承SimpleUrlAuthenticationFailureHandler 类。该类中默认实现了登录验证失败的跳转逻辑,即登陆失败之后回到登录页面。我们可以利用这一点简化我们的代码。
代码如下:
配置如下:
将自定义的AuthenticationSuccessHandler和AuthenticationFailureHandler注入到Spring Security配置类中
使用formlogin模式,配置successHandler和failureHandler。
不要配置defaultSuccessUrl和failureUrl,否则自定义handler将失效。handler配置与URL配置只能二选一
本篇文章介绍了Spring Security 的 formLogin的配置方式,需要注意的是这里不支持前后端分离架构,关于前后端分离架构如何整合,后文会介绍
来源:https://juejin.cn/post/7140096326829621261
度收录的文章多种多样,排名将显示在搜索结果中。然而,有一个方面是确定的,那就是,网站首页的内容将首先显示。因此,我们应该注意网站的登录页面设计。简而言之,网站的登录页实际上是网站的主页,其中一些是网站的专栏页。无论是主页还是其他页面,都会有一个共同而突出的特点,即网站的登录页面内容非常丰富,其中大部分以标题的形式存在,并起到导航的作用。
网站的登陆页面不仅要求内容丰富,而且在视觉效果的设计上要求美感和良好印象,以吸引用户深入访问页面,为网站赢得忠诚用户。让我们来分析一下企业网站建设登陆页面设计的一些技巧。
首先,网站登录页面的头部设计。登录页的内容必须有LOGO。企业网站应向用户展示企业标识,以便用户一进入网站就知道它是什么样的网站,并向用户传达网站的主要业务是什么。网站的口号必须靠近logo,这样才能与其他企业区分开来,并看到与同行的差异。右边可以是企业的联系方式,通常是企业的400电话号码,这也是企业实力的展示。
其次,网站的登录页必须有横幅图片。如果是企业网站,横幅图片可以是企业的成功案例,也可以是企业的优势产品。横幅图片的设计必须高档、大气、高端,图片内容应与网站内容一致,体现企业网站的专业性,影响企业形象。
第三,登录页面应重点介绍产品。企业肯定会有很多产品,而且这些产品的类型肯定是不同的。因此,登录页面的建设必须对这些产品进行详细介绍,并做好分类介绍,以便用户在点击想要了解的产品后可以轻松进入详细介绍页面,这也是登录页面的导航功能。
第四,登陆页面应显示企业荣誉证书。企业网站是企业展示实力的最佳平台,而登录页面是最重要的环节。许多用户通过登录页面了解网站。如果登录页面能够证明企业的实力和优势,用户将留在网站上进行深入访问。荣誉证书和一些相关部门的认证是最好的解释。
第五,登录页面应显示企业的联系信息。特别是一些交互式联系信息,如在线客服系统,可以增强与用户的互动,增强用户的信任。在解决用户问题的同时,引导用户对网站进行深度访问,提高网站的粘性。
网站的登录页面对用户很有吸引力,可以提高网站的转化率。因此,登录页面的设计在网站建设中起着非常重要的作用。
本文由妥妥网站建设原创,点赞关注,带你一起长知识!
了解更多
*请认真填写需求信息,我们会在24小时内与您取得联系。