限制内部使用服务器


问题内容

我有一个使用Spring MVC的REST
Web服务,它是面向外部的。我想限制对某些REST调用的访问,以便管理员使用以及同一内部网络上要调用的其他服务器。

到目前为止,我可以想到以下解决方案:

  1. 使用Spring-Security通过“ hasIpAddress”访问限制到子网的映射
  2. 将敏感的REST调用分离到各自的控制器中,并编写一个AOP切入点,该切入点读取HttpServletRequest的IP地址并对照白名单进行检查

我不喜欢任何一种解决方案。(1)没有给我足够的灵活性,我可能在几个子网中,可能只想打开一个IP范围。(2)几乎完全给了我想要的东西,但是似乎很老套,必须有更好的方法来做到这一点。


问题答案:

(2)为什么不想使用@PreAuthrize之类的“标准”注释。您可以将它们放在方法中,因此您无需将敏感的REST方法移至其他控制器。