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

在Spring Security配置中,所有人都可以访问的Urls是不可访问的,并且无法重定向到登录

页面。这是因为Spring Security默认情况下会对所有的Urls进行保护,需要用户进行身份验证才能访问。

要解决这个问题,可以通过配置Spring Security的访问规则来实现。在Spring Security的配置文件中,可以使用antMatchers方法来指定哪些Urls可以被所有人访问。例如,可以使用以下代码来配置允许所有人访问的Urls:

代码语言:txt
复制
@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/public/**").permitAll()
            .anyRequest().authenticated()
            .and()
        .formLogin()
            .loginPage("/login")
            .permitAll();
}

在上述代码中,antMatchers("/public/**").permitAll()表示允许所有人访问以/public/开头的Urls。其他的Urls则需要进行身份验证才能访问。

另外,为了实现无法重定向到登录页面的效果,可以在登录页面的控制器中进行判断,如果用户已经登录,则跳转到其他页面,否则显示登录页面。以下是一个示例代码:

代码语言:txt
复制
@Controller
public class LoginController {

    @GetMapping("/login")
    public String login(HttpServletRequest request) {
        if (request.getUserPrincipal() != null) {
            return "redirect:/home";
        }
        return "login";
    }
}

在上述代码中,request.getUserPrincipal()用于判断用户是否已经登录。如果已经登录,则使用redirect:/home进行重定向到其他页面,否则显示登录页面。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):提供弹性计算能力,满足各种业务需求。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库服务。详情请参考:https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的云端存储服务。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一个诡异登录问题

这个任务实在小 case,由于项目本身已经支持 HTTPS 了,我只需要再添加一个 HTTP 监听端口即可(Spring Boot 配置 Https),添加如下配置: @Configuration...如果使用了 HTTPS 协议登录登录成功后,HTTPS 协议重定向 HTTP 协议时,需要重新登录并且登录页面总是登录失败,需要清除浏览器缓存才能登录成功。...整个过程,最为诡异从 HTTPS 重定向 HTTP 之后,无论怎么样都登录不了,服务端重启也没用,只能清除浏览器缓存,这个非常奇怪,我觉得就先从这个地方入手 DEBUG。...,重定向 http://localhost:8080/ 地址时,出现了一点点意外,该请求 Spring Security 过滤器链最后一个环节 FilterSecurityInterceptor...Spring Security 登录成功后,会将用户信息保存在 SecurityContextHolder Spring Security ,我就想从子线程获取用户登录信息,怎么办?)

1.1K10

Spring Security (二) Guides

例子,来了解Spring Security如何保护我们应用,之后会对进行一个解读。...整个Spring Security工作量,其实都是集中配置类,不仅仅是这个guides,实际项目中也是如此。... configure(HttpSecurity)定义了哪些URL路径应该被拦截,如字面意思所描述:"/", "/home"允许所有人访问,"/login"作为登录入口,也被允许访问,而剩下"/hello...默认配置Spring Security提供了一个拦截该请求并验证用户过滤器。 如果验证失败,该页面将重定向“/ login?error”,并显示相应错误消息。...考虑受众问题,一个入门例子必须得有的,方便后续对Spring Security自定义配置进行讲解。

1.1K60

Spring Security(二)--Guides

例子,来了解Spring Security如何保护我们应用,之后会对进行一个解读。...整个Spring Security工作量,其实都是集中配置类,不仅仅是这个guides,实际项目中也是如此。... configure(HttpSecurity)定义了哪些URL路径应该被拦截,如字面意思所描述:"/", "/home"允许所有人访问,"/login"作为登录入口,也被允许访问,而剩下"/hello...默认配置Spring Security提供了一个拦截该请求并验证用户过滤器。 如果验证失败,该页面将重定向“/ login?error”,并显示相应错误消息。...考虑受众问题,一个入门例子必须得有的,方便后续对Spring Security自定义配置进行讲解。

1.1K120

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

Spring Security 登录添加验证码 SpringSecurity 登录使用 JSON 格式数据 Spring Security 角色继承问题 Spring Security 中使用 JWT...Spring Security 结合 OAuth2 不过,今天要和小伙伴们聊一聊 Spring Security 另外一个问题,那就是 Spring Security 未获认证请求默认会重定向登录页...,但是在前后端分离登录,这个默认行为则显得非常不合适,今天我们主要来看看如何实现未获认证请求直接返回 JSON ,而不是重定向登录页面。...:这个表示配置处理登录请求接口地址,例如你表单登录,那么 form 表单 action 值就是这里填值。...这种配置在前后端不分登录没有问题,在前后端分离登录,这种配置就有问题了。

1.3K40

Spring Boot 与 OAuth2

每个添加新功能例子中都有以下特点: 简单:一个非常基本静态应用程序只有一个主页,并通过Spring Boot EnableOAuth2Sso无条件登录(如果你访问主页,你将自动重定向Facebook...它们每一个都可以被导入一个IDE并且有一个可以在那里运行主类 SocialApplication来启动应用程序。...用FaceBook做单点登录 本节,我们创建一个使用Facebook进行身份验证应用程序。如果我们利用Spring Boot自动配置功能,这一过程将相当容易。...做了以上改变,你可以再次运行应用程序,并访问 http//localhost:8080主页。接下来你应该重定向Facebook登录而不是主页。...在下一节,我们将为应用程序添加一些基本功能,并且使用户更清楚看到最初重定向Facebook时发生事情。

10.6K120

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

Tom首先访问公司邮件系统(系统1),但需要登录。邮件系统将他重定向公司SSO认证中心,Tom在那里登录登录成功后,他被带回邮件系统,并且可以访问邮件。...在这种模型下: 无论身份地位:不论普通用户、高级管理员,甚至公司CEO,所有人访问网络资源时都需要验证身份。...访问客户端:浏览器访问客户端应用。由于客户端配置了OAuth2登录,您将被重定向sso-server进行认证。 登录重定向 sso-server 登录后,您将被重定向回客户端应用。...业务流程,用户首先在客户端应用上发起登录或数据访问请求。 客户端应用将用户重定向服务提供者授权页面,用户该页面上进行登录并授权。...点击“Login with Google”链接,你将被重定向Google登录页面。登录后,Google将重定向回你应用,并且你可以访问受保护用户信息。

77921

源码剖析 Spring Security 实现原理

] 某些低版本,可能会显示 DefaultSecurityFilterChain: Will not secure any request 这样日志,这可能 Spring Security ...跳转到 /login 页面 让我们回到第一节例子,当访问 /hello 时,可以看到浏览器自动跳转到了 /login 登录页面,那么 Spring Security 如何实现呢?...拦截,并将这个异常交给 LoginUrlAuthenticationEntryPoint 处理,从而重定向 /login 页面,整个过程示意图如下: 接下来,浏览器开始访问重定向 /login...答案就是我们配置文件配置 spring.security.user,我们可以从自动配置类 UserDetailsServiceAutoConfiguration 中找到 InMemoryUserDetailsManager...它返回一个重定向,将浏览器转到登录之前用户访问页面。

45310

Spring Security SSO 授权认证(OAuth2)

Spring Security SSO 授权认证(OAuth2) @TOC 手机用户请横屏获取最佳阅读体验,REFERENCES本文参考链接,如需要链接和更多资源,可以关注其他博客发布地址。...我们将使用三个单独应用程序: 授权服务器 - 这是中央身份验证机制 两个客户端应用程序:使用SSO应用程序 非常简单地说,当用户试图访问客户端应用程序安全页面时,他们将被重定向首先通过身份验证服务器进行身份验证...如果用户没有认证的话,Spring SecurityFilter将会捕获该请求,并将用户重定向应用登录页面。...我们例子,索引和登录页面唯一可以没有身份验证情况下访问页面。 最后,我们还定义了一个RequestContextListener bean来处理请求范围。...用户将被重定向授权URI 4)userInfoUri用户端点URI,用于获取当前用户详细信息 另请注意,我们示例,我们定义了授权服务器,但当然我们也可以使用其他第三方提供商,如Facebook

1.8K20

Spring Boot Admin 添加报警提醒和登录验证功能!

,生产环境至少还需要配置以下两个功能: 被监控 Spring Boot 项目的报警功能,因为我们不能时刻盯着 SBA 监控系统,但当系统出现问题时,我们又需要第一时间知道,因此报警提醒功能不可...默认情况下 SBA 使用是没有权限验证,也就是所有人知道了地址都可以正常使用,这不满足生产系统安全要求,所以用户授权功能也是必不可。 接下来我们来看以上功能具体实现。...2.访问权限设置 SBA 默认没有权限验证,而生产环境一定要配置权限验证,我们这里通过添加 Spring Security 框架来实现权限拦截,具体实现如下。.../groupId> spring-boot-starter-security 2.2 设置登录账户 SBA 配置文件...application.properties 添加如下配置: # 设置登录用户名、密码和角色 spring.security.user.name=java666 spring.security.user.password

96220

【SpringSecurity】快速入门—通俗易懂

UserDetailsServiceSpring Security一个接口,它有一个方法loadUserByUsername,用于根 据用户名获取用户信息。....logoutUrl("/logout"): 这告诉Spring Security,当用户点击注销时,应该将他们重定向URL "/logout"。...在这个例子,用户将被重定向应用程序"/index"页面。 .permitAll(): 这告诉Spring Security,所有用户都应该能够访问注销功能。...总的来说,这段代码目的配置Spring Security注销功能,使得所有用户都可以注销,并且当 他们注销成功后,他们将被重定向应用程序"/index"页面。...开启CSRF后,Spring Security会添加一个CSRF令牌表单提交请求,以确保只有合法请 求才能被处理。

32140

任何 Web 项目都离不开 Spring Security【原理+实战(前后端分离+无状态)】

Spring Security 原理本质Spring Security 本质上就是一个过滤器链,所有的访问请求都会经过这些过滤器。如下图不了解过滤器可以自行前往了解。...HttpSession进行身份验证,但是对于无状态应用,这种方式不可。...以下两者验证权限流程自定义配置Spring Security 如何知道我们想要求所有用户都经过身份认证?如何知道我们想要支持基于表单身份认证?...未认证时访问接口,默认会由 LoginUrlAuthenticationEntryPoint 处理,会重定向某个URL,需要配置自定义为json响应。...整个流程涉及安全上下文(SecurityContext),通过自定义过滤器,token解析并设置当前请求上下文。

700

奇怪,Spring Security 登录成功后总是获取不到登录用户信息?

() Controller 方法,加入 Authentication 参数 这两种办法,都可以获取到当前登录用户信息。...小伙伴们都知道,无论 Spring Security 还是 Shiro,它一系列功能其实都是由过滤器来完成 Spring Security ,松哥前面跟大家聊了 UsernamePasswordAuthenticationFilter...当我们想让 Spring Security 资源可以匿名访问时,我们有两种办法: 不走 Spring Security 过滤器链。...继续走 Spring Security 过滤器链,但是可以匿名访问。 这两种办法对应了两种不同配置方式。...如果你很不巧,把登录请求地址放进来了,那就 gg 了。虽然登录请求可以被所有人访问,但是不能放在这里(而应该通过允许匿名访问方式来给请求放行)。

8K61

手把手带你入门 Spring Security

Spring Security Spring 家族一个安全管理框架,实际上, Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用并不多,安全管理这个领域...当用户从浏览器发送请求访问 /hello 接口时,服务端会返回 302 响应码,让客户端重定向 /login 页面,用户 /login 页面登录,登陆成功之后,就会自动跳转到 /hello 接口。...通过以上两种不同登录方式,可以看出,Spring Security 支持两种不同认证方式: 可以通过 form 表单来认证 可以通过 HttpBasic 来认证 3.用户名配置 默认情况下,登录用户名...4.登录配置 对于登录接口,登录成功后响应,登录失败后响应,我们都可以 WebSecurityConfigurerAdapter 实现类中进行配置。...successHandler 方法配置登录成功回调,如果前后端分离开发的话,登录成功后返回 JSON 即可,同理,failureHandler 方法配置登录失败回调,logoutSuccessHandler

49720

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

Spring Security Spring 家族一个安全管理框架,实际上, Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用并不多,安全管理这个领域...当用户从浏览器发送请求访问 /hello 接口时,服务端会返回 302 响应码,让客户端重定向 /login 页面,用户 /login 页面登录,登陆成功之后,就会自动跳转到 /hello 接口。...通过以上两种不同登录方式,可以看出,Spring Security 支持两种不同认证方式: 可以通过 form 表单来认证 可以通过 HttpBasic 来认证 3.用户名配置 默认情况下,登录用户名...4.登录配置 对于登录接口,登录成功后响应,登录失败后响应,我们都可以 WebSecurityConfigurerAdapter 实现类中进行配置。...successHandler 方法配置登录成功回调,如果前后端分离开发的话,登录成功后返回 JSON 即可,同理,failureHandler 方法配置登录失败回调,logoutSuccessHandler

69910

Oauth 2.0 详解

, 验 证通过后,微信会询问用户是否给授权网站访问自己微信数据,用户点击“确认登录”表示同意授权, 微信认证服务器会颁发一个授权码,并重定向网站。...2.授权模式(常用) 1、授权码模式(Authorization Code) USER-AGENT:浏览器 2、简化授权模式(Implicit) 提前获取访问令牌,但因为Fragment无法访问...这一步主要在授权服务模快完成 4.1创建配置类 首先,启动类或者任意一个@Configuration声明启动类打开@EnableAuthorizationServer 注释,这个注解Spring...InMemoryTokenStore:这个默认采用方式。他可以单服务器上完美运行(即并发访问压力不大情况下,并且失败时不会进行备份)。大多数项目都可以使用这个实现类来进行尝试。...然后,我们重新申请一个正确access_token,重新访问资源 测试这里要注意有两点 一,要总结下在我们示例代码验证资源要素包含了哪些,这些都是OAuth认证流程需要注意概念。

1.7K50

软件测试实践干货 | 测试登录功能思路与原理解析(基于 Spring Security

地址,验证是否会重新定向用户登录界面; 5.密码输入框是否不支持复制和粘贴; 6.密码输入框内输入密码是否都可以页面源码模式下被查看; 7.用户名和密码输入框中分别输入典型“SQL 注入攻击...Spring Security简介 Spring Security 一个能够为基于 Spring 企业应用系统提供声明式安全访问控制解决方案安全框架。...Java Web工程——登录 配置文件 1、 Maven 工程 Pom.xml 文件添加 Spring Security 依赖 org.springframework.security...,就表示在所有这些页面的访问过程中使不需要携带登录信息,直接输入URL即可;所以测试过程要注意页面的区分,分别测试。...也是不可密码,无法被破解,但是因为MD5相同密码下生成加密字符串固定,所以大数据技术下可以建立数据库将常用密码进行一一对应存储方法来进行破解;相对比BCrypt加盐方式,BCrypt

87700

75. Django 集成 CAS 实现 SSO 单点登陆

Django 服务接收到 浏览器发送过来请求之后,则创建 CSRFToken 以及 相关用户信息,存储 Session 并且返回浏览器 Set-Cookie 信息,通知浏览器设置相关 Cookie...后端发现该请求未登陆,则返回前端 302 ,并 重定向 CAS 服务器登录页面,并携带当前用户访问网页链接 CAS 服务器上,用户填写登录信息,浏览器发送请求 CAS 服务器进行认证 CAS...image-20200914162842100 总结 1.成功访问CAS服务,登陆用户之后,通过配置,可以自动将用户同步客户端项目的用户数据 通过 settings.py 配置自动同步用户数据:...通过不同 url 访问并且都可以设置登陆状态。...从上面的尝试过程,可以确认 客户端项目 可以保留 两种登陆用户 方式并且两种方式用户数据都会保存在 客户端项目中。

4.8K30
领券