我想用Apache Tomcat实现基于容器的访问控制。我想通过IP地址或使用内置的身份验证程序阀门之一(例如FORM,BASIC等)来授予对我的Web服务的访问权限。
使用方案是允许从某些静态服务器IP地址进行访问,或者允许某些用户提供一些身份验证凭据(最好是通过TLS)进行访问(如果它们不在那些受信任的IP范围内)。
是否可以通过这种方式组合两个阀的作用?如果不是这样的话,有什么好/快速/简单的方法来解决这个问题?
不,Tomcat不支持此功能。您将必须编写自己的代码Authenticator
才能执行此类操作。
例如,由于您要合并一个现有的Authenticator
(例如,FormAuthenticator
通过HTML表单来挑战用户的用户名和密码),而且还允许绕过IP范围的用户,则只需:
authenticate(Request,HttpServletResponse)
方法
Principal
在请求上设置一个return true
super.authenticate(request,response)
很好地了解FormAuthenticator.authenticate
它是如何工作的,您将能够轻松应对Principal
上述问题。
请记住,如果只有IP地址,则不会知道要选择哪个用户或角色。因此,在适合该用户的任何角色集合中,您可能都需要“ IPauthUser”之类的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句