当前位置: 首页 > 面试题库 >

Spring Security HTTP基本认证

赵涵亮
2023-03-14
问题内容

我正在尝试使用Spring Security做一个非常简单的基本身份验证。我已经正确配置了名称空间,并且服务器中没有异常。在我的“
servlet.xml”中,我获得了Spring Security的下一个:

<security:http>
    <security:http-basic></security:http-basic>
    <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" />
</security:http>


<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider>
        <security:user-service>
            <security:user name="cucu" password="tas" authorities="ROLE_USER" />
            <security:user name="bob" password="bobspassword" authorities="ROLE_USER" />
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>

几乎一切都完美了:没有的方法POST不会提示任何登录表单,而POST方法会提示它。问题是,或者cucu,都bob不能登录那里。谁能看到我在做什么错?

提前致谢!;-)


问题答案:

自动应答

T_T为此,我花了两天时间反对代码…

看起来这不是代码的问题。我将Weblogic与它一起使用,并且Weblogic捕获带有“
authorization”标头的请求,因此它不会到达我的身份验证管理器。我用玻璃鱼试了一下,效果很好。

搜索一些信息,我在下一个博客中找到了一个有用的条目:http: //yplakosh.blogspot.com/2009/05/how-to-fix-
basic-authentication-issue.html

从我的Weblogic服务器(<security-configuration>部分)在config.xml中添加下一行:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth- credentials>

Weblogic将不会再捕获基本的身份验证凭据,因此将由您的身份验证管理员来处理。

我希望它可以为任何人节省时间:-)



 类似资料:
  • 基本认证在 Web 应用中是非常流行的认证机制。 基本身份验证通常用于无状态客户端,它们在每个请求中传递其凭证。 将其与基于表单的认证结合使用是很常见的,其中通过基于浏览器的用户界面和作为Web服务来使用应用。 但是,基本认证将密码作为纯文本传输,是不安全的,所以它只能在真正通过加密的传输层(如HTTPS)中使用。 在 jpa-userdetailsservice项目的基础上,我们构建了一个bas

  • 我开发了一个spring启动应用程序。当我需要执行REST请求时(POST、PUT…)我每次都使用这样的基本身份验证 有没有另一种方法可以在应用程序中进行一次基本身份验证,然后在没有基本身份验证的情况下使用RestTem板或http Post{放/删除...}? 顺致敬意,

  • 我目前正在运行一个Node.js应用程序,有一个应用程序接口和文件服务(我知道nginx可以处理它,但我一开始不应该使用它)。 我只是用它来做一个简单的基本认证,碰巧没那么简单。 这是我的nginx配置: 文件只是,很好。 使用此配置,当我转到我的IP时: 询问我用户和密码 开始加载页面 (有时)再次询问用户和密码 完成以加载页面 到目前为止还不错,即使它问了两次密码。 Node.js应用程序具有

  • 我正在为一个新项目使用OkHttp库,它的易用性给我留下了深刻的印象。我现在需要使用基本身份验证。不幸的是,缺少可用的示例代码。我正在寻找一个示例,说明在遇到HTTP 401头时如何将用户名/密码凭据传递给OkAuthenticator。我看到了这个答案: 改装带有基本HTTP身份验证的POST请求:“无法重试流式HTTP正文” 但这并没有让我走得太远。OkHttp github repo上的示例

  • BasicAuth (基本认证) 中间件 BasicAuth 中间件提供了 HTTP 的基本认证方式。 对于有效的请求则继续执行后面的处理。 对于无效的请求,返回”401 - Unauthorized”响应。 用法 e.Use(middleware.BasicAuth(func(username, password string, c echo.Context) (bool, error) {

  • Marathon可以通过SSL进行API端点的安全访问也恶意通过HTTP基本接入认证进行有限访问。如果计划使用基本认证方式,我们建议使用SSL方式,因为其他方式由于用户名和密码未被加密,信息容易被其他方获取。 Enabling SSL##使用SSL 如果已经有了Java keystore,可以将其连通密码一起通过SSL传递至Marathon $ cd /path/to/marathon $ ./b