0

我正在尝试让 Spring 安全身份验证在 Web 应用程序上运行。

到目前为止,我已经能够锁定整个 Web 应用程序的 Web 应用程序(要求用户登录),除了我需要的基于 URL 的异常。

<http use-expressions="true">
    <intercept-url pattern="/open/**" access="permitAll"/>
    <intercept-url pattern="/**" access="isAuthenticated()"/>
    <form-login />
</http>

这工作正常。

但是,我现在需要能够说,如果客户端连接来自“localhost”或“127.0.0.1”,它应该只允许访问。

换句话说,我是否可以指定来自 localhost 的连接根本不需要任何身份验证,而所有其他(外部)连接都需要遵守上述规则?

4

1 回答 1

1

尝试为localhostlike定义一个新角色ROLE_LOCALHOST,然后配置您的spring-security.xmllike :

<http use-expressions="true">
    <intercept-url pattern="/**"
        access="hasRole('ROLE_LOCALHOST') and hasIpAddress('127.0.0.1')"/>
    ...
</http>

这将允许您访问 ROLE 的所有 URL,ROLE_LOCALHOSTIP 为127.0.0.1. 不太确定localhost

于 2013-09-02T17:56:57.600 回答