spring-security关闭登录框的实现示例

 更新时间:2021年05月10日 09:36:53   作者:jyc35136  
这篇文章主要介绍了spring-security关闭登录框的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

事情要从同事的一个项目说起,项目中需要集成公司的单点登录系统,但是无论如何都无法跳转到正常的登录页面。相反,却始终跳转到另外一个登录页面。

但是代码却非常简单,简化一下

@Controller
public class SecurityTestController {

  @GetMapping("/myLogin")
  public String login() {
    return "login";
  }

  @GetMapping("/")
  public String homePage() {
    return "homePage";
  }
}

发现无论是"/myLogin"还是"/"都绕不过登录,即使打了断点也进入不了两个方法。

由于之前没有接触过securtiy,还以为是公司另外一个登录系统,让同事输入公司域账户和密码,却怎么也无法进入。最后还是同事通过搜索"please sign in" + "spring"的关键词才知道这个是securtiy。

那既然知道是spring boot 的security,那要如何登录呢,以及要如何关闭这个登录框呢?

第一个问题,如何登录?

我们从启动日志中,可以看到有一条这样的日志

 

所以,这个就是登录用到的密码。那用户名是什么呢? 这个可以进入UserDetailsServiceAutoConfiguration看看究竟。

然后继续进入SecurityProperties.User看看。

可以从代码中看到,如果不做任何配置,Spring Security的User信息,name是user,而paasword是UUID,这个会在启动日志中打印。

在登录框中,输入"user" + 日志中的密码,即可正常登录。

定义用户名和密码

对于登录名和密码,可以通过在application.properties文件中指定

spring.security.user.name=admin
spring.security.user.password=admin

第二个问题,有没有办法关闭登录?

关闭自动配置

当我们仅仅引入了Spring Securtiy的Starter,就发现访问会存在输入框。一定是SpringBoot的autoConfig帮我们配置了一些东西。那么可以通过关闭Securtiy的autoConfig关闭登录。

可以在启动类上添加

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})

或者是在application.properties文件中添加

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration

注意到我的项目中,除了SecurityAutoConfiguration被排除掉外,还有ManagementWebSecurityAutonConfiguration被排除,这个类是Actuator引入的。如果项目中有使用Actuator,那么就需要同时排除掉ManagementWebSecurityAutonConfiguration。

定制WebSecurityConfigureAdapter关闭登录框

@Component
public class MySecurtiyConfig extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    // 正常配置其他安全相关的内容

    // 将登录框关闭
    http.formLogin().disable();
  }
}

这里推荐使用第二种方式,因为引入Spring-security肯定是有业务需要的,可以定制化登录校验信息。

到此这篇关于spring-security关闭登录框的实现示例的文章就介绍到这了,更多相关spring security关闭登录框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现抽奖算法的示例代码

    SpringBoot实现抽奖算法的示例代码

    这篇文章主要为大家详细介绍了如何通过SpringBoot实现抽奖算法,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以了解一下
    2023-06-06
  • springboot集成PageHelper分页失效的原因及解决

    springboot集成PageHelper分页失效的原因及解决

    项目启动初期,在集成mybatis的分页插件,自定义封装了一个分页的工具类,方便后期项目的扩展,结果无法分页了,怎么设置搞都没办法正常分页,所以本文将给大家介绍一下springboot集成PageHelper分页失效的原因及解决,需要的朋友可以参考下
    2023-10-10
  • Java压缩集合的三种方法

    Java压缩集合的三种方法

    这篇文章主要介绍了Java压缩集合的三种方法,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-01-01
  • Java多线程中的Interrupt简析

    Java多线程中的Interrupt简析

    这篇文章主要介绍了Java多线程中的Interrupt简析,Interrupt 的其作用是"中断"线程, 但实际上线程仍会继续运行, 这是一个非常容易混淆的概念,Interrupt 的真正作用是给线程对象设置一个中断标记, 并不会影响线程的正常运行,需要的朋友可以参考下
    2023-09-09
  • java提取字符串中数字string以及获取字符串中的整数或小数

    java提取字符串中数字string以及获取字符串中的整数或小数

    这篇文章主要给大家介绍了关于java提取字符串中数字string以及获取字符串中的整数或小数的相关资料,需要的朋友可以参考下
    2023-08-08
  • TKMybatis的介绍和使用详解

    TKMybatis的介绍和使用详解

    TKMybatis 是基于 Mybatis 框架开发的一个工具,本文主要介绍了TKMybatis的介绍和使用详解,内部实现了对单表的基本数据操作,只需要简单继承 TKMybatis 提供的接口,就能够实现无需编写任何 sql 即能完成单表操作,感兴趣的可以了解一下
    2021-12-12
  • Java instanceof关键字的的进一步理解

    Java instanceof关键字的的进一步理解

    这篇文章主要介绍了Java instanceof关键字的的进一步理解,本文用一些实例讲解了instanceof操作符的一些知识,需要的朋友可以参考下
    2015-03-03
  • 一文带你掌握Java LinkedBlockingQueue

    一文带你掌握Java LinkedBlockingQueue

    LinkedBlockingQueue 是一个可选有界阻塞队列,这篇文章主要为大家详细介绍了Java中LinkedBlockingQueue的实现原理与适用场景,感兴趣的可以了解一下
    2023-04-04
  • 详解Java设计模式——迭代器模式

    详解Java设计模式——迭代器模式

    这篇文章主要介绍了Java设计模式——迭代器模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java实战之邮件的撰写和发送

    Java实战之邮件的撰写和发送

    这篇文章主要为大家详细介绍了通过Java代码实现邮件的撰写和发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,需要的小伙伴们可以学习一下
    2021-11-11

最新评论