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关闭登录框内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Spring Security如何配置JSON登录

    spring security用了也有一段时间了,弄过异步和多数据源登录,也看过一点源码,最近弄rest,然后顺便搭oauth2,前端用json来登录,没想到spring security默认居然不能获取request中的json数据,谷歌一波后只在stackoverflow找到一个回答比较靠谱,还是得要重写filter,于是在这里填一波坑. 准备工作 基本的spring security配置就不说了,网上一堆例子,只要弄到普通的表单登录和自定义UserDetailsService就可以.因为需

  • Spring Security OAuth2集成短信验证码登录以及第三方登录

    前言 基于SpringCloud做微服务架构分布式系统时,OAuth2.0作为认证的业内标准,Spring Security OAuth2也提供了全套的解决方案来支持在Spring Cloud/Spring Boot环境下使用OAuth2.0,提供了开箱即用的组件.但是在开发过程中我们会发现由于Spring Security OAuth2的组件特别全面,这样就导致了扩展很不方便或者说是不太容易直指定扩展的方案,例如: 图片验证码登录 短信验证码登录 微信小程序登录 第三方系统登录 CAS单点登录

  • SpringBoot + SpringSecurity 短信验证码登录功能实现

    实现原理 在之前的文章中,我们介绍了普通的帐号密码登录的方式: SpringBoot + Spring Security 基本使用及个性化登录配置. 但是现在还有一种常见的方式,就是直接通过手机短信验证码登录,这里就需要自己来做一些额外的工作了. 对SpringSecurity认证流程详解有一定了解的都知道,在帐号密码认证的过程中,涉及到了以下几个类:UsernamePasswordAuthenticationFilter(用于请求参数获取),UsernamePasswordAuthentica

  • Spring Security Oauth2.0 实现短信验证码登录示例

    本文介绍了Spring Security Oauth2.0 实现短信验证码登录示例,分享给大家,具体如下: 定义手机号登录令牌 /** * @author lengleng * @date 2018/1/9 * 手机号登录令牌 */ public class MobileAuthenticationToken extends AbstractAuthenticationToken { private static final long serialVersionUID = SpringSecur

  • 详解使用Spring Security进行自动登录验证

    在之前的博客使用SpringMVC创建Web工程并使用SpringSecurity进行权限控制的详细配置方法 中,我们描述了如何配置一个基于SpringMVC.SpringSecurity框架的网站系统.在这篇博客中,我们将继续描述如何使用Spring Security进行登录验证. 总结一下Spring Security的登录验证关键步骤: 1.在数据库中建好三张表,即users.authorities和persistent_logins三个.注意字段的定义,不能少,可以多,名字必须按规定来.

  • Spring Security登录添加验证码的实现过程

    登录添加验证码是一个非常常见的需求,网上也有非常成熟的解决方案,其实,要是自己自定义登录实现这个并不难,但是如果需要在 Spring Security 框架中实现这个功能,还得稍费一点功夫,本文就和小伙伴来分享下在 Spring Security 框架中如何添加验证码. 关于 Spring Security 基本配置,这里就不再多说,小伙伴有不懂的可以参考我的书<SpringBoot+Vue全栈开发实战>,本文主要来看如何加入验证码功能. 准备验证码 要有验证码,首先得先准备好验证码,本文采用

  • Springboot+SpringSecurity+JWT实现用户登录和权限认证示例

    如今,互联网项目对于安全的要求越来越严格,这就是对后端开发提出了更多的要求,目前比较成熟的几种大家比较熟悉的模式,像RBAC 基于角色权限的验证,shiro框架专门用于处理权限方面的,另一个比较流行的后端框架是Spring-Security,该框架提供了一整套比较成熟,也很完整的机制用于处理各类场景下的可以基于权限,资源路径,以及授权方面的解决方案,部分模块支持定制化,而且在和oauth2.0进行了很好的无缝连接,在移动互联网的授权认证方面有很强的优势,具体的使用大家可以结合自己的业务场景进行选

  • SpringBoot Security前后端分离登录验证的实现

    最近一段时间在研究OAuth2的使用,想整个单点登录,从网上找了很多demo都没有实施成功,也许是因为压根就不懂OAuth2的原理导致.有那么几天,越来越没有头绪,又不能放弃,转过头来一想,OAuth2是在Security的基础上扩展的,对于Security自己都是一无所知,干脆就先研究一下Security吧,先把Security搭建起来,找找感觉. 说干就干,在现成的SpringBoot 2.1.4.RELEASE环境下,进行Security的使用. 简单的Security的使用就不说了,目前

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

    事情要从同事的一个项目说起,项目中需要集成公司的单点登录系统,但是无论如何都无法跳转到正常的登录页面.相反,却始终跳转到另外一个登录页面. 但是代码却非常简单,简化一下 @Controller public class SecurityTestController { @GetMapping("/myLogin") public String login() { return "login"; } @GetMapping("/") public

  • 基于spring security实现登录注销功能过程解析

    这篇文章主要介绍了基于spring security实现登录注销功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.引入maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependenc

  • Spring Security自定义登录页面认证过程常用配置

    目录 一.自定义登录页面 1.编写登录页面 2.修改配置类 3.编写控制器 二. 认证过程其他常用配置 1.失败跳转 1.1编写页面 1.2修改表单配置 1.3添加控制器方法 1.4设置fail.html不需要认证 2.设置请求账户和密码的参数名 2.1源码简介 2.2修改配置 2.3修改页面 3.自定义登录成功处理器 3.1源码分析 3.2代码实现 4.自定义登录失败处理器 4.1源码分析 4.2代码实现 一.自定义登录页面 虽然Spring Security给我们提供了登录页面,但是对于实际

  • spring security自定义登录页面

    在项目中我们肯定不能使用Spring自己生成的登录页面,而要用我们自己的登录页面,下面讲一下如何自定义登录页面,先看下配置 <sec:http auto-config="true"> <sec:intercept-url pattern="/app.jsp" access="ROLE_SERVICE"/> <sec:intercept-url pattern="/**" access="

  • Spring Security自定义登录原理及实现详解

    1. 前言 前面的关于 Spring Security 相关的文章只是一个预热.为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始.安全访问的第一步就是认证(Authentication),认证的第一步就是登录.今天我们要通过对 Spring Security 的自定义,来设计一个可扩展,可伸缩的 form 登录功能. 2. form 登录的流程 下面是 form 登录的基本流程: 只要是 form 登录基本都能转化为上面的流程.接下来我们看看 Spring

  • SpringBoot使用Spring Security实现登录注销功能

    1.首先看下我的项目结构 我们逐个讲解 /** * 用户登录配置类 * @author Administrator * */ public class AdminUserDateils implements UserDetails { private static final long serialVersionUID = -1546619839676530441L; private transient YCAdmin yCAdmin; public AdminUserDateils() { }

  • Spring Security 单点登录简单示例详解

    Overview 最近在弄单点登录,踩了不少坑,所以记录一下,做了个简单的例子. 目标:认证服务器认证后获取 token,客户端访问资源时带上 token 进行安全验证. 可以直接看源码. 关键依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.2

  • 如何使用Spring Security手动验证用户的方法示例

    1.概述 在这篇快速文章中,我们将 重点介绍如何以编程方式在Spring Security和Spring MVC中设置经过身份验证的用户 . 2. Spring Security 简而言之, Spring Security在ThreadLocal中保存每个经过身份验证的用户的主要信息 - 保存的是Authentication对象 . 为了构造和设置此Authentication对象, 通常我们需要使用Spring Security在标准身份验证上构建对象的相 同方法. 要让我们手动触发身份验证,

  • Spring Security OAuth2实现使用JWT的示例代码

    1.概括 在博客中,我们将讨论如何让Spring Security OAuth2实现使用JSON Web Tokens. 2.Maven 配置 首先,我们需要在我们的pom.xml中添加spring-security-jwt依赖项. <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-jwt</artifactId> &l

  • Spring Security OAuth2 实现登录互踢的示例代码

    本文主要介绍了Spring Security OAuth2 实现登录互踢的示例代码,分享给大家,具体如下: 背景说明 一个账号只能一处登录,类似的业务需求在现有后管类系统是非常常见的. 但在原有的 spring security oauth2 令牌方法流程(所谓的登录)无法满足类似的需求. 我们先来看 TokenEndpoint 的方法流程 客户端 带参访问 /oauth/token 接口,最后去调用 TokenGranter TokenGranter 根据不同的授权类型,获取用户认证信息 并去

随机推荐