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

没有表单登录的Spring security

陈飞
2023-03-14

我已经在我的应用程序Spring控制器中实现了Spring Security表达式

@Controller
@RequestMapping("init")
public class InitController {
    @PreAuthorize("hasRole('ROLE_ADMIN')")
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public @ResponseBody String home(){
        return "This is the init page";
    }
}

使用此安全配置:

<http auto-config="true" create-session="stateless" use-expressions="true">
    <intercept-url pattern="/_ah*" access="permitAll" />
    <intercept-url pattern="/init/*" access="hasRole('ROLE_ADMIN')"/>
    <intercept-url pattern="/init*" access="hasRole('ROLE_ADMIN')"/>
</http>

当访问此资源时,将显示默认的Spring登录表单(http://localhost:8888/spring_security_login)但是,我不希望发生这种情况,我只希望在请求头中插入凭据,如“x-authorization-key”或任何适合该场景的内容。

有什么可能的解决办法?

  • 只在请求中使用x-授权密钥好吗
  • 如果是这样,它如何适应Spring Security机制,即它如何适应“hasRole”表达式
  • 重要的是my Web服务是无状态的,并且每个请求都经过身份验证
  • 最后,如何在不处理Spring登录表单的情况下处理Spring Security

标头

共有1个答案

刘瑞
2023-03-14

您可能应该阅读有关自动配置功能的说明,然后将其删除以禁用表单登录。如果你特别配置了你想要使用的东西,你的配置会更清晰。

您的问题不清楚您希望在x-authorization-key标题中包含什么内容。如果您只是使用客户机Id和共享密钥进行身份验证,那么您也可以使用基本身份验证,因为它已经得到了现成的支持,您只需添加

身份验证机制的适用性也取决于它实际上由什么组成。通常情况下,用户将拥有分配的角色,这些角色在进行身份验证时加载,通常来自某种数据库。hasRole表达式只检查当前用户是否具有指定的角色。通常,您只需要创建一个userdetails服务,它以标准格式加载您的用户信息,该格式很容易插入到框架中。其他地方详细介绍了这一点。如果你真的需要更个性化的东西,这篇关于GAE集成的博客文章将详细介绍如何与更复杂的系统集成。

如果使用create session='stateless',Spring Security将不会创建或使用会话。

另外,你不需要在URL级别和处理相同URL的控制器上都包含相同的安全属性。

 类似资料:
  • 问题内容: 我已经在我的应用程序Spring控制器中实现了Spring Security Expression: 使用此安全配置: 当访问该资源时,将显示默认的Spring登录表单(),但是我不希望这种情况发生,并且我只想将凭据插入到请求标头中,例如“ x-authorization-key”或任何其他内容。适合的情况。 有什么可能的解决方案? 仅将x-authorization-key包含在请求

  • 我尝试使用这个简单的代码登录,但在我点击登录按钮后,else选项“无效用户名或密码!”总是出现,即使用户名和密码是匹配的 控制器:

  • 我是Symfony的新手,我正在尝试为我的应用程序创建一个access登录表单,但当我尝试登录时,它只会一次又一次地将我重定向到表单登录。在此之前,我使用了HTTP基本表单,它工作得很好,但现在我尝试使用登录表单,这是不可能的。 这是我的代码: 用户类(带教义): 安全Controller.php: Security.yml login.html.twig 有什么想法吗?谢谢

  • 我一直在关注symfony网站上的教程(http://symfony.com/doc/current/security.html)为我的Symfony 3.1项目添加登录名。它可以与HTTP基本身份验证一起工作,但是当我使用这里的教程添加form_登录时(http://symfony.com/doc/current/security/form_login_setup.html)它会一直重定向到登录

  • 问题内容: 我正在忙于开发一个网站,该网站的右上角有一个登录框。我希望用户能够在不刷新的情况下登录同一页面。 好的,我已经开始工作了,但是我仍在努力登录后的过程,如下所示: (HTML) (PHP) (我的jQuery) (isLoggedIn.php) (isNotLoggedIn.php) 登录过程可以正常工作,但是注销混乱。当我单击isLoggedIn.php中的Logout链接时,它注销了

  • 您好,我知道这个主题以前就有人提出过,但是没有人像我这样做过AJAX操作标准。我是AJAX和jQuery的新手 我这里的问题是,我不确定js函数“ajaxPostCallManip()”是否达到“login.php”!! 我发了几个警报,但没有出现...请帮帮忙 超文本标记语言代码 js代码 PHP代码