首页
学习
活动
专区
工具
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
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券