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

在Spring中处理HTTP基本授权标头

田彬郁
2023-03-14

我尝试通过在HTTP标头中发送凭据来对我的Spring应用程序进行身份验证(基本身份验证)。

我保护了,例如,资源

http://localhost:8080/app/home

未经身份验证的用户被重定向到

http://localhost:8080/app/login.jsp

现在,我向localhost:8080/app/home发送一个GET请求,其中包含HTTP标头中的编码凭据,如下所示:

Authorization: Basic c2VjcmV0dXNlcjpzZWNyZXRwd2Q=

我使用“高级Rest客户端”Chrome插件来发送请求,所以我非常确定标头已正确发送。但是服务器通过重定向到登录.jsp页面来回答。

Spring似乎没有使用Authoration标头。我是否需要配置我的Spring应用程序以接受“Authoration: Basic”HTTP标头?

这是我的security-config.xml:

<http use-expressions="true" access-denied-page="/login.jsp?authorization_error=true" xmlns="http://www.springframework.org/schema/security">
         <intercept-url pattern="/login.jsp" access="permitAll" />
         <intercept-url pattern="/**" access="hasRole('ROLE_USER')" />

           <form-login authentication-failure-url="/login.jsp?authentication_error=true" default-target-url="/home"
            login-page="/login.jsp" login-processing-url="/login.do" />
        <logout logout-success-url="/index.jsp" logout-url="/logout.do" /> 
        <anonymous />
</http>

共有1个答案

东龙野
2023-03-14

您需要在 http 标签内添加一个 http-basic 标签。还要添加领域名称。

<http realm="My application name" ...>
  <http-basic />
  ...
</http>
 类似资料:
  • 我想在客户端和节点上使用JQuery设置一个基本的HTTP身份验证。服务器端的js。我已在服务器端发出以下Ajax请求以设置头: 我希望使用基本身份验证模块在服务器端使用: 但是,这样做,我会遇到一些问题: 我看不到在飞行前选项HTTP请求中设置了标头: 选项/服务器HTTP/1.1 主机:服务器。com 连接:保持活动状态 访问控制请求方法:获取 来源:null 用户代理:Mozilla/5.0

  • 问题内容: 我正在尝试在Web应用程序中使用Spring Security 3.0.5。基本上,我想拥有一个Web服务,该服务通过可以json格式返回数据HTTP GET。 我实现了一个RESTful服务,当http://localhost:8080/webapp/json请求url时该服务返回数据。使用以下curl命令可以正常工作 使用Spring Security添加基本身份验证后,可以使用以

  • 我正在尝试使用Reddit API(https://github.com/reddit-archive/reddit/wiki/OAuth2)在我的ASP。NET Core MVC应用程序,为了获得令牌,我必须使用HTTP基本授权(用户名和密码是客户端id和密码)对URI进行POST。目前我使用的代码是: 然而,这并没有使用授权。如何添加授权?我试图查看< code>HttpClient的文档。P

  • 当构建一个不使用HTTP基本身份验证(但是像api-key这样的其他东西)并且客户机提供无效凭据的REST API时,您应该返回什么HTTP状态代码?401未经授权还是403禁止? IANA HTTP状态代码注册表将RFC7235第3.1节列为“401未经授权”的责任人,其中指出: HTTP 401响应必须始终包含一个WWW-Authenticate标头,该标头指示客户端如何进行身份验证。HTTP

  • 我正在尝试使用基本授权让WSMan工作。我总是遇到访问被拒绝的错误。Kerberos身份验证工作正常。 Windows远程管理服务正在域A的Windows Server 2008 R2上运行,并具有以下配置: 我正在域B中的Windows 7工作站上执行Test-WSMan: 并得到以下错误: 请注意,以下命令可以正常工作: 以下日志在Windows Server上显示: 有人能帮我解决这个问题吗

  • 我试图在一个已经设置了基本auth的Spring Boot应用程序中配置CORS。 我在很多地方搜索过,包括这个答案,它指向官方文档中基于过滤器的CORS支持。 到目前为止还没有运气。