- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 Apache Tomcat 实现基于容器的访问控制。我想通过 IP 地址或使用内置验证器阀之一(例如 FORM、BASIC 等)授予对我的 Web 服务的访问权限。
使用场景是允许某些用户从一些静态服务器 IP 地址访问或,如果他们不在那些受信任的 IP 范围内,则提供一些身份验证凭据(最好通过 TLS)。
是否有可能以这种方式组合两个阀门的 Action ?如果不是,什么是好的/快速/简单的方法来解决这个问题?
最佳答案
不,Tomcat 不支持开箱即用。您必须编写自己的 Authenticator
才能执行此类操作。
例如,由于您要结合现有的 Authenticator
(假设 FormAuthenticator
用于通过 HTML 表单向用户询问用户名和密码),但也允许绕过来自 IP 范围的用户,然后简单地:
authenticate(Request,HttpServletResponse)
方法以
Principal
并返回 true
super.authenticate(request,response)
好好看看 FormAuthenticator.authenticate
是如何做的,您将能够轻松地处理如上所述的 Principal
。
请记住,如果您只有一个 IP 地址,您将不知道选择哪个用户或角色。因此,您可能需要在适合该用户的任何角色集合中使用类似“IPauthUser”的内容。
关于tomcat - 是否可以在 Tomcat 中组合 RemoteAddrValve 和身份验证阀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35431821/
在同一个 Tomcat 上下文配置中是否可以有多个 validator Valves?我知道你可以通过 CombinedRealm 拥有多个领域,但是不同的身份验证方法呢? 我必须更新 Web 应用程
我写了一个Tomcat valve,配置在server.xml里。到目前为止,一切都很好。但是,我希望阀门的数据成员之一是 Spring 管理的 bean。那么,我怎样才能使阀门也由 Spring 管
我是一名优秀的程序员,十分优秀!