首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring security自动重定向到登录页面不显示公共主页

Spring Security是一个用于身份验证和授权的框架,它提供了一套全面的安全解决方案,可以轻松集成到Spring应用程序中。当用户未经身份验证时,Spring Security可以自动重定向到登录页面。

在Spring Security中,可以通过配置来实现自动重定向到登录页面。首先,需要在Spring配置文件中配置登录页面的URL和相关的认证信息。可以使用formLogin()方法来配置登录页面的URL和登录请求的处理逻辑。例如:

代码语言:txt
复制
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/public/**").permitAll() // 公共主页的URL
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login") // 登录页面的URL
                .defaultSuccessUrl("/home") // 登录成功后的默认页面
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }
    
    // 其他配置...
}

在上述配置中,.antMatchers("/public/**").permitAll()表示/public/**路径下的页面是公共主页,不需要身份验证。.loginPage("/login")指定了登录页面的URL为/login.defaultSuccessUrl("/home")指定了登录成功后的默认页面为/home

此外,还可以通过自定义登录页面的方式来实现自动重定向。可以创建一个Controller来处理登录请求,并返回登录页面的视图。例如:

代码语言:txt
复制
@Controller
public class LoginController {
    
    @GetMapping("/login")
    public String login() {
        return "login"; // 返回登录页面的视图名
    }
    
    // 其他处理登录请求的方法...
}

在上述代码中,@GetMapping("/login")表示处理GET请求的/login路径,并返回名为login的视图。

综上所述,Spring Security可以通过配置登录页面的URL和相关的认证信息来实现自动重定向到登录页面。可以根据具体需求选择配置方式或自定义登录页面的方式来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring认证指南:了解如何使用 Spring Security 保护您的 Web 应用程序

然后,您将在下一节中使用 Spring Security 对其进行保护。 Web 应用程序包括两个简单的视图:一个主页和一个“Hello, World”页面。...当用户成功登录时,他们将被重定向先前请求的需要身份验证的页面。有一个自定义/login页面(由 指定loginPage()),每个人都可以查看。...按照配置,Spring Security 提供了一个过滤器来拦截该请求并对用户进行身份验证。如果用户未能通过身份验证,页面将被重定向/login?error,并且您的页面显示相应的错误消息。...“退出”表单提交 POST /logout. 成功注销后,它将用户重定向/login?logout. 运行应用程序 Spring Initializr 为您创建了一个应用程序类。...提交登录表单后,您将通过身份验证,然后进入欢迎页面,如下图所示: 安全的问候页面 如果您单击注销按钮,您的身份验证将被撤销,您将返回登录页面,并显示一条消息,表明您已注销。 概括 恭喜!

1.1K20

Spring Boot 与 OAuth2

在每个添加新功能的例子中都有以下特点: 简单:一个非常基本的静态应用程序只有一个主页,并通过Spring Boot的 EnableOAuth2Sso无条件登录(如果你访问主页,你将自动重定向Facebook...做了以上改变,你可以再次运行应用程序,并访问 http//localhost:8080的主页。接下来你应该重定向Facebook登录而不是主页。...添加一个欢迎页面 在本节中,我们将修改我们刚刚构建的应用程序,通过添加一个显式的链接登录Facebook。新的链接不会立即被重定向,而是可以在主页上看到,用户可以选择登录或不经过身份验证。...启动应用程序并在新的浏览器窗口中加载主页。点击“登录”链接将你带到Facebook(如果你已经登录,你可能不会注意重定向)。点击“注销”按钮取消当前会话,并将应用程序返回到未认证状态。...添加错误页面 为了支持客户端中的标志设置,我们需要能够捕获身份验证错误,并使用在查询参数中设置的标志重定向主页

10.5K120

SpringBoot----Web开发第二部分---CRUD案例实现

专门用来处理 URL 链接地址的,会自动帮我们加上项目名的访问路径 国际化 步骤 1.编写国际化配置文件,抽取页面需要显示的国际化消息 2.SpringBoot自动配置好了管理国际化资源文件的组件...==>禁用掉模板引擎的缓存+重新编译 Thymeleaf 内置对象和内置方法 转发到某一页面导致的表单重复提交问题 登录成功后,要防止表单被重复提交,可以重定向主页 拦截器进行登录检查,防止不经过登录直接来到某一页面...,看是否帮我们自动增添了项目名访问路径: ---- 国际化 步骤 1.编写国际化配置文件,抽取页面需要显示的国际化消息 每个国际化配置资源文件分别有如下五个属性值,对应要替换页面的五处内容...内置对象和内置方法 ---- 转发到某一页面导致的表单重复提交问题 解决表单重复提交问题 ---- 登录成功后,要防止表单被重复提交,可以重定向主页 ---- 拦截器进行登录检查,防止不经过登录直接来到某一页面...,那么session域中就会存在已经登录的凭证,如果此时回退到登录页面,那么就可以登录直接访问对应网页,这个的解决方法如下: 使用下面这个解决方法的前提是拦截器只拦截登录页面,而不是所有请求,不然当登录成功后

1.5K30

spring security——基本介绍(一)「建议收藏」

此时,如果用户点击主页上的链接,他们会看到问候语,请求被没有被拦截。 你需要添加一个障碍,使得用户在看到该页面之前登录。您可以通过在应用程序中配置Spring Security来实现。...如果Spring Security在类路径上,则Spring Boot会使用“Basic认证”来自动保护所有HTTP端点。 同时,你可以进一步自定义安全设置。...当用户成功登录时,它们将被重定向先前请求的需要身份认证的页面。有一个由 loginPage()指定的自定义“/登录页面,每个人都可以查看它。...根据配置,Spring Security提供了一个拦截该请求并验证用户的过滤器。 如果用户未通过认证,该页面重定向“/ login?error”,并在页面显示相应的错误消息。...logout”,我们的页面显示相应的登出成功消息。最后,我们需要向用户提供一个显示当前用户名和登出的方法。

89910

ASP.NET Core 6框架揭秘实例演示:使用最简洁的代码实现登录、认证和注销

这个应该会呈现两个页面,认证用户访问主页会呈现一个“欢迎”页面,匿名请求则会重定向登录页面,我们将这两个页面的呈现实现在如下这个IPageRenderer服务中,PageRenderer类型为该接口的默认实现...主页需要在登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面。在登录页面输入正确的用户名和密码之后,应用会自动重定向主页,该页面显示当前认证用户名并提供注销的链接。...基于Cookie的认证方案会自动将匿名请求重定向登录页面,由于我们指定的登录和注销路径是Cookie的认证方案约定的路径,所以调用ChallengeAsync方法时根本不需要指定重定向路径。...在验证通过的情况下,我们会根据用户名创建代表当前用户的ClaimsPrincipal对象,并将它作为参数调用HttpContext上下文的SignInAsync扩展方法实施登录, 该方法最终会自动重定向初始方法的路径...如下面的代码片段所示,SignOutAsync扩展方法正是调用这个方法来注销当前登录状态的。我们在完成注销之后将应用重定向主页

20530

ASP.NET Core 使用最简洁的代码实现登录、认证和注销

这个应该会呈现两个页面,认证用户访问主页会呈现一个"欢迎"页面,匿名请求则会重定向登录页面,我们将这两个页面的呈现实现在如下这个IPageRenderer服务中,PageRenderer类型为该接口的默认实现...主页需要在登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面。 在登录页面输入正确的用户名和密码之后,应用会自动重定向主页,该页面显示当前认证用户名并提供注销的链接。...基于Cookie的认证方案会自动将匿名请求重定向登录页面,由于我们指定的登录和注销路径是Cookie的认证方案约定的路径,所以调用ChallengeAsync方法时根本不需要指定重定向路径。...在验证通过的情况下,我们会根据用户名创建代表当前用户的ClaimsPrincipal对象,并将它作为参数调用HttpContext上下文的SignInAsync扩展方法实施登录, 该方法最终会自动重定向初始方法的路径...如下面的代码片段所示,SignOutAsync扩展方法正是调用这个方法来注销当前登录状态的。我们在完成注销之后将应用重定向主页

28630

一个诡异的登录问题

HTTP 协议访问,如果用户使用了 HTTPS 协议访问,那么会自动发生请求重定向重定向 HTTP 协议上。...当我使用 HTTPS 登录成功后,请求 https://localhost:8444/http 地址时,按理说会重定向 http://localhost:8080/http,结果并没有,而是重定向登录页面...那就 DEBUG,浏览器发送登录请求,服务端我把 Spring Security 登录流程走了一遍,貌似没问题,登录成功后重定向 http://localhost:8080/ ,这也是正常的,继续 DEBUG...,重定向 http://localhost:8080/ 地址时,出现了一点点意外,该请求在 Spring Security 过滤器链的最后一个环节 FilterSecurityInterceptor...:8080/http,重定向的请求是 HTTP 请求,而 Cookie 只可以在 HTTPS 环境下传输,所以不会携带 Cookie,服务端以为这是一个匿名请求,所以要求重定向登录页面,回到登录页面继续登录

1.1K10

手把手带你入门 Spring Security

自从有了 Spring Boot 之后,Spring Boot 对于 Spring Security 提供了 自动化配置方案,可以零配置使用 Spring Security。...>spring-boot-starter-security 只要加入依赖,项目的所有接口都会被自动保护起来。...当用户从浏览器发送请求访问 /hello 接口时,服务端会返回 302 响应码,让客户端重定向 /login 页面,用户在 /login 页面登录,登陆成功之后,就会自动跳转到 /hello 接口。...另外,也可以使用 POSTMAN 来发送请求,使用 POSTMAN 发送请求时,可以将用户信息放在请求头中(这样可以避免重定向登录页面): ?....and() .formLogin() //定义登录页面,未登录时,访问一个需要登录之后才能访问的接口,会自动跳转到该页面 .loginPage

48520

Spring Boot2 系列教程(三十三)整合 Spring Security

自从有了 Spring Boot 之后,Spring Boot 对于 Spring Security 提供了 自动化配置方案,可以零配置使用 Spring Security。...>spring-boot-starter-security 只要加入依赖,项目的所有接口都会被自动保护起来。...当用户从浏览器发送请求访问 /hello 接口时,服务端会返回 302 响应码,让客户端重定向 /login 页面,用户在 /login 页面登录,登陆成功之后,就会自动跳转到 /hello 接口。...另外,也可以使用 POSTMAN 来发送请求,使用 POSTMAN 发送请求时,可以将用户信息放在请求头中(这样可以避免重定向登录页面): ?....and() .formLogin() //定义登录页面,未登录时,访问一个需要登录之后才能访问的接口,会自动跳转到该页面 .loginPage

68210

Spring MVC 框架学习(七)---- 后端接口小练习(计算器与登陆拦截)

,只要输入的用户账号以及密码为 admin即可显示登陆成功,进入一个主页“hello word” /static/login.html , 显示登录页并发送ajax请求,传递输入的 username、password...-- 登录页面页面容器, 为了和其他页面样式区分开, 使用不同的类名 --> <div class="login-dialog...index.html,只是作为一个展示页,要通过/index接口才能<em>重定向</em><em>到</em>这个<em>页面</em>,<em>重定向</em>之前要获取session查看是否登陆 <!...首页、如果不存在 <em>重定向</em><em>到</em> login <em>登录</em>页 @RequestMapping("/index") public String index(@SessionAttribute(value...,是会重定向 登陆界面的。

93310

Spring Boot2 系列教程(三十八)Spring Security 非法请求直接返回 JSON

Spring Security 登录添加验证码 SpringSecurity 登录使用 JSON 格式数据 Spring Security 中的角色继承问题 Spring Security 中使用 JWT...Spring Security 结合 OAuth2 不过,今天要和小伙伴们聊一聊 Spring Security 中的另外一个问题,那就是在 Spring Security 中未获认证的请求默认会重定向登录页...,但是在前后端分离的登录中,这个默认行为则显得非常不合适,今天我们主要来看看如何实现未获认证的请求直接返回 JSON ,而不是重定向登录页面。...loginPage:这个表示登录页的地址,例如当你访问一个需要登录后才能访问的资源时,系统就会自动给你通过重定向跳转到这个页面上来。...我举个简单的例子,例如我想访问 /hello 接口,但是这个接口需要登录之后才能访问,我现在没有登录就直接去访问这个接口了,那么系统会给我返回 302,让我去登录页面,在前后端分离中,我的后端一般是没有登录页面

1.3K40

单点登录与授权登录业务指南

用户被重定向登录页面:最后,SSO认证中心将用户重定向登录页面,表示注销过程已完成。 示例: 比如,Alice在她的工作地点使用了邮件系统(系统1)和内部论坛(系统2)。...重定向授权服务:用户被重定向服务提供者的授权页面,以登录并确认授权。 授权码发放:服务提供者验证用户身份并提供一个授权码给第三方应用。...业务流程中,用户首先在客户端应用上发起登录或数据访问请求。 客户端应用将用户重定向服务提供者的授权页面,用户在该页面上进行登录并授权。...点击“Login with Google”链接,你将被重定向Google的登录页面登录后,Google将重定向回你的应用,并且你可以访问受保护的用户信息。...控制器和视图: 创建控制器处理登录和用户信息的显示,以及相应的前端页面。 运行和测试: 启动授权服务器和客户端应用,进行登录流程测试。

58421

解决前后端分离Vue项目部署服务器后出现的302重定向问题

问题描述 最近发现自己开发的vue前后端分离项目因为使用了spring security 安全框架,即使在登录认证成功之后再调用一些正常的接口总是会莫名奇妙地出现302重定向的问题,导致接口数据出不来。...接口无法加载响应数据 接口重定向标识Location显示需要重新登录认证,而且这个请求还是GET请求。...通过jwt token认证相当于spring security需要对用户的每次请求都先认证一次,如果用户的认证信息没有保存到SecurityContext类中的authentication中就会在调用非登录接口获取数据时出现这种重定向登录页面的问题...对于白名单中的请求部署服务器后是不会有这种302重定向登录页面的问题。因为这些白名单请求在Spring Security中也进行了放行, 源码如下。...不过这种方式解决的话相当于弃用了Spring Security安全框架,任意用户都能访问后台接口,应用没有安全可言,推荐使用; 第二种方式便是在JwtAuthenticationFilterBean#

3K20

用最简单的方式在ASP.NET Core应用中实现认证、登录和注销

应用的主页需要登录之后才能访问,所以针对主页的匿名请求会被重定向登录页面。在登录页面输入正确的用户名和密码之后,应用会自动重定向应用主页,该页面显示当前认证用户名并提供注销的链接。...else { await context.ChallengeAsync(); } } } 对于匿名请求,我们希望应用能够自动重定向登录路径...有了ClaimsPrincipal对象,我们只需要将它作为参数调用HttpContext上下文的SignInAsync扩展方法即可完成登录,该方法最终会自动重定向初始方法的路径,也就是我们的主页。...,我们还是会调用RenderLoginPageAsync方法来呈现登录页面,该页面会以下图所示的形式保留用户的输入并显示错误消息。...如下面的代码片段所示,我们定义在Program中的SignOutAsync扩展方法正是调用这个方法来注销当前登录状态的。我们在完成注销之后将应用重定向主页

3.4K30

Spring Boot 整合SpringSecurity

"/login",/login是spring security自带的一个页面 //登录成功后默认跳转到 / 路径 http.formLogin().loginPage(...点击按钮后会调转到默认的logout页面,点击确认后跳转到主页 0x02 整合Thymeleaf 需求如下: 实现用户登录显示注销按钮,未登录显示登录按钮 登录显示用户的用户名和权限信息 实现根据用户的权限信息显示指定的..."> 登录状态及权限信息 通过以下配置,实现两点需求: 实现用户登录显示注销按钮,未登录显示登录按钮 登录显示用户的用户名和权限信息 定位标签,修改子标签内容如下...我们勾选上并尝试登录 ? 登录成功后我们可以看到 spring security自动返回一个cookie值到我们的浏览器当中,实现用户会话信息的保存。...登录页定制 在这之前的操作一直以来登录页面都是使用 spring security自带的登录页面,通常我们都是需要替换成自己设计的登录页面 这里我们原来配置的登录页面的路由为 /tologin @RequestMapping

1.3K10

技术汇总:第八章:CAS单点登录

CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向 CAS Server。...启动tomcat自动解压war包。浏览器输入http://localhost:8080/cas/login  ,可看到登录页面 不要嫌弃这个页面丑,我们后期可以再提升它的颜值。...这里有个固定的用户名和密码   casuser /Mellon 登录成功后会跳到登录成功的提示页面 CAS服务端配置 端口修改 如果我们希望用8080端口访问CAS, 可以修改端口 修改TOMCAT...:9002/  ,地址均会跳转到CAS登录页 输入用户名和密码后,页面跳转回9002  ,再次访问9001也可以打开主页面。..."http://localhost:9** **1** **00/cas/logout"* *>退出登录 但我们更希望退出登录后,能自动跳转到某个页面,那如何处理呢?

60920
领券