公共及;具有Spring安全性的私有RESTAPI
我有一个用Spring 3.2编写的REST Web服务,它通过Spring Security由CAS保护,我希望它提供一个相同的私有内部API,可以由我们私有网络上的其他服务器使用,而无需身份验证 例如,这两个端点公共及;具有Spring安全性的私有RESTAPI,spring,rest,spring-mvc,spring-security,Spring,Rest,Spring Mvc,Spring Security,我有一个用Spring 3.2编写的REST Web服务,它通过Spring Security由CAS保护,我希望它提供一个相同的私有内部API,可以由我们私有网络上的其他服务器使用,而无需身份验证 例如,这两个端点/app/public/people/{id}和/app/private/people/{id}都将映射到同一个处理程序,但后者将绕过安全性,前者将需要CAS身份验证 我是否可以将两者放在相同的@RequestMapping注释中,并指定不同的安全拦截?比如说, 安全拦截:
/app/public/people/{id}
和/app/private/people/{id}
都将映射到同一个处理程序,但后者将绕过安全性,前者将需要CAS身份验证
我是否可以将两者放在相同的@RequestMapping
注释中,并指定不同的安全拦截?比如说,
安全拦截:
<security:intercept-url pattern="/private/**" access="permitAll() />
<security:intercept-url pattern="/public/**" access="isAuthenticated()" requires-channel="https"/>
如何使用IP地址来区分私有网络和公共网络的访问?然后,您可以为这两者定义一个端点。例如,如果您的专用网络为192.168.1.0/24,则:
<security:intercept-url pattern="/**"
access="isAuthenticated() or hasIpAddress('192.168.1.0/24')"
requires-channel="https" />
如果在反向代理后面有Servlet容器,不要忘记设置X-Forwarded-For
(或X-Real-IP
)头并配置容器以使用它;否则,Spring Security将看到反向代理的IP,而不是客户端