spring-security入门5---自定义登陆页面优化---提供默认实现,但可通过修改配置进行个性化实现(一)


项目源码地址 https://github.com/nieandsun/security

1.写在前面的话

1.1 代码结构调整

代码还是会使用面几篇文章一直延用的代码,但对代码结构进行了调整,调整后的代码结构如下:
在这里插入图片描述

1.2 前面文章的不足

通过前面两篇文章,已经实现了不使用spring-security的默认行为,而自定义登陆页面 , 自定义登陆成功/登陆失败的行为.
但是

  • 对于自定义的登陆页面,有些项目组可能有自己的设计风格,并不想用我们提供的登陆页面
  • 对于自定义登陆成功/登陆失败,有些项目组的需求可能就是按ping-security默认实现的方式

面对这样的特殊需求,我们的处理方式肯定是有问题的,这时候一个比较好的处理方式是按照上篇文章上篇文章所说的那样,我们给一个默认实现,如果其他项目组想用我们的项目的话,可以通过修改配置文件,来实现自己的个性化需求.

2. 自定义登陆页面优化

比较简单主要做的事情有以下几点:

2.1自定义一个统一管理项目中所有由yml或properties文件传入的变量的类(上篇文章说的"大盒子"类)

package com.nrsc.security.core.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * "大盒子"类-----------------用于统一管理项目中所有由yml或properties文件传入的变量值
 * Created By: Sun Chuan
 * Created Date: 2019/6/20 22:13
 */
@Component //将此类注入到spring容器中
@Data //不用写get set方法了
@ConfigurationProperties(prefix = "nrsc.security") //指定以nrsc.security开头的配置会射入到该类中
public class SecurityProperties {
    //封装浏览器相关的属性
    private BrowserProperties browser = new BrowserProperties();
}

2.2 指定默认登陆页面

package com.nrsc.security.core.properties;

import lombok.Data;

/**
 * Created By: Sun Chuan
 * Created Date: 2019/6/20 22:13
 */
@Data
public class BrowserProperties {
    //指定默认的登陆页面
    private String loginPage = "/nrsc-login.html";
}

2.3 获取用户配置的登陆url,当用户请求以.html结尾时,如未认证,将其转发到用户配置的url

在这里插入图片描述

2.4 指定用户配置的登陆url不进行认证校验

在这里插入图片描述

2.5 在配置文件里配置自己要用的登陆页面url

比如:

nrsc:
  security:
    browser:
      loginPage: /OtherServer/other-login.html

2.6 简单实现一个页面

当然由于我的项目没有进行拆分,所以这里就在本项目的一个文件夹下创建了一个超简单的页面,页面结构和代码如下:
在这里插入图片描述

3. 测试

3.1 直接输入localhost:8080/demo.html

在这里插入图片描述

3.2 将配置文件注释掉

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

nrsc

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

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

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

打赏作者

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

抵扣说明:

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

余额充值