当前位置: 首页 > 知识库问答 >
问题:

在Spring Security登录成功期间强制Https连接

訾晋
2023-03-14

我有一个spring boot应用程序,它包含spring security,其中添加了formLogin和自定义loginPage。每当我通过身份验证时,它会将我发送到defaultSuccessUrl,即/app/dashboard,它会与模式http一起发送。我一整天都在尝试将successUrl模式设置为https,只需对应用程序进行一些修改。属性,有时使用Bean,但我仍然无法实现。我的应用程序在cloudfoundry中,我没有80端口,只有443(https)。

我Spring的配置是这样的:

http
    .authorizeRequests()
    .antMatchers("/", "/forbidden", "/index.html", "/webjars/*", "/app.js", "/access/*", "/signup", "/l10n/*.js", "/", "/tpl/**/*.html", "/fonts/**/*.woff").permitAll()
    .anyRequest().authenticated()

    .and().addFilterAfter(new CsrfHeaderFilter(), CsrfFilter.class).
    csrf().csrfTokenRepository(repo)

    .and() .httpBasic().disable()
    .formLogin()
    .loginPage("/access/signin").permitAll()
    .failureUrl("/error")
    .defaultSuccessUrl("/app/dashboard")
    .and().logout()
    .logoutRequestMatcher(new AntPathRequestMatcher("access/logout"))
    .logoutSuccessUrl("/access/signin").permitAll();

我也尝试过使用https的绝对url,但是效果不好。

共有1个答案

雷国兴
2023-03-14

您是否尝试过在需要通道()在需要安全()?对于可以通过https访问的特定url,您可以尝试

.defaultSuccessUrl("/app/dashboard").and().requiresChannel().antMatchers("/app/dashboard").requiresSecure() 

对于通过https的所有请求,您可以使用like

.and().requiresChannel().anyRequest().requiresSecure()

您可以使用如下所示的端口映射。

 http
     .portMapper()              
        .http(8080).mapsTo(443);

请参阅此和此了解更多详细信息。

 类似资料:
  • 我有一个Spring Boot应用程序,使用Spring Security和Keyclope作为IDP。 Keyclope在以下位置可用https://auth.example.com,具有一个具有客户端backo核心的领域backo和一个配置了所需角色的testuser。 如果我配置本地应用程序,请使用 一切正常。 如果我将其部署到我的开发环境中https://backo.example.com

  • 我是Spring Security的新手,我一直在阅读API和Javadocs,我相信我需要关于我的问题的帮助。 到目前为止,根据反复试验,我观察到的是抛出一个异常,提示authenticate方法自动重定向到登录失败处理程序。从那里,可以很容易地重定向和自定义失败身份验证的流程。然而,在成功登录时,除了HttpServletRequest、HttpServletResponse和身份验证对象之外

  • 我一直在尝试为我的网站配置这个,但是做不到。 我以前有一个cond。htaccess对主域名强制www,对子域什么都不用,但是自从我得到了一个SSL,我遇到了一些问题。 这是一个通配符SSL。 我需要的是在主域上强制HTTPS://WWW,在子域上强制HTTPS://。 即:http://www.domain.com - 有什么规定吗?谢谢! 编辑 现在我用乔恩贴的 问题是,当我在主域上键入 HT

  • 我已经编写了一个php用户登录脚本,虽然我已经设法使注册页面正常工作(从而排除了common.php文件的内容是一个问题),并在mySQL中检查了数据库正在填充,但我似乎无法使登录本身发布任何内容,而不是不成功。 我肯定是在数据库中输入用户名和密码。有人能看出我哪里出了问题,或者建议我如何检查哪里出了问题吗? 表jmp_users的结构如下: 我的login.php页面是:

  • springsecurity oauth2.0 谁做过记录登录日志?监听事件好像没法区分是什么原因失败的、比如client错误还是用户名错误

  • 本文向大家介绍SpringBoot 配合 SpringSecurity 实现自动登录功能的代码,包括了SpringBoot 配合 SpringSecurity 实现自动登录功能的代码的使用技巧和注意事项,需要的朋友参考一下 自动登录是我们在软件开发时一个非常常见的功能,例如我们登录 QQ 邮箱: 很多网站我们在登录的时候都会看到类似的选项,毕竟总让用户输入用户名密码是一件很麻烦的事。 自动登录功能