java - Spring 安全: Adding a new ROLE which supports authentication by IP

标签 java spring-security

我是 Spring Security 的新用户。

我之前配置了 Spring Security 来为我的 Web 应用程序执行基于表单的身份验证。

我使用注释来指示哪些 Controller /方法需要 ROLE_USER 与匿名,并实现了我自己的 daoAuthenticationProvider 来执行身份验证。

现在正在实现 REST 服务,这些服务需要在 BasicAuthentication 上进行身份验证 + 对我的数据库进行 IP 验证。

因此,我在 REST 服务 Controller 上定义了一个新角色 ROLE_IP_AUTH。

我现在有点不知所措。有人可以简要描述一下我下一步应该采取什么步骤吗?

  • 我需要创建一个新的 新的 元素 角色?
  • 我应该切换到这个吗 过滤链代理?如果是的话用什么过滤 我应该包括在内吗?
  • 我应该在现有的 daoAuthenticationProvider 类中处理这个问题吗?

基本上我只需要知道我要往哪个方向走。我想我知道的足够多了,在 Spring 中似乎只有 5 种不同的方式可以到达任何地方。

<小时/> 其他信息 我当前的实现的元素配置如下:

<security:http auto-config="false"
               entry-point-ref="authenticationEntryPoint" >
    <security:logout logout-url="/logout" />
    <security:anonymous enabled="false"/>
    <security:custom-filter position="FORM_LOGIN_FILTER" ref="usernamePasswordAuthenticationFilter" />
    <security:custom-filter position="ANONYMOUS_FILTER" ref="anonymousAuthFilter" />
</security:http>

我剩下的问题是如何实现我自己的 IP 验证。我可以使用自定义过滤器添加 BasicAuth 过滤器,并实现我自己的基本身份验证过滤器来检查 IP。但我不清楚如何使该过滤器仅适用于我的 REST 服务使用的 ROLE_IP_AUTH?

最佳答案

@Ritesh 的回答对于以不同的方式重新构建这个任务非常有帮助。另一篇解决这个问题的好文章在这里:

Spring security - how to mention both form based and basic authentication

最终我的理解是:按照 @Ritesh 在 3.0.x 中建议的方式通过投票者进行操作,或者使用多个 元素,如所讨论的 3.1.0.RC1(截至 17mar2011 的版本)中现在可用的那样在上面的链接中。

关于java - Spring 安全: Adding a new ROLE which supports authentication by IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5310147/

相关文章:

java - 使用外部登录页面的 Spring Security OAuth2 登录

java - 为什么 TestRestTemplate 允许在 Spring Boot IT 测试中进行未经身份验证的请求?

spring - 我应该如何使用 Spring WebClient 代表另一个用户以非交互方式访问受 OAuth 保护的资源?

JAVA maven JSP不会加载css文件

java - 使用泛型编译错误

java - 如何显示两个对象彼此相邻?

java - 精度损失误差

java - 区别: 'sec:authentication' & 'sec:authentication property'

java - 如何在非常大的 XML 文件中快速搜索/索引?

java - 尽管 {withCredentials :true},但未能在 GET 请求中发送 Cookie