栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Tomcat:绕过指定IP地址的基本身份验证

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Tomcat:绕过指定IP地址的基本身份验证

如果您只想允许几个IP地址,而不允许其他人使用,则您需要Remote Address Filter
Valve

如果希望来自未知IP地址的客户端看到基本的登录对话框,并且可以自定义登录,则可以登录

Valve
。在源
RemoteAddrValve
(和它的父类
RequestFilterValve
是出发点良好的。看看我以前的答案太。

无论如何,下面是概念证明代码。如果客户端来自受信任的IP

Principal
Request
则会填入,因此登录模块将不会要求输入密码。否则它不会碰到
Request
对象,并且用户可以照常登录。

import java.io.IOException;import java.security.Principal;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import org.apache.catalina.connector.Request;import org.apache.catalina.connector.Response;import org.apache.catalina.realm.GenericPrincipal;import org.apache.catalina.valves.Valvebase;public class AutoLoginValve extends Valvebase {    private String trustedIpAddress;    public AutoLoginValve() {    }    @Override    public void invoke(final Request request, final Response response)   throws IOException, ServletException {        final String remoteAddr = request.getRemoteAddr();        final boolean isTrustedIp = remoteAddr.equals(trustedIpAddress);        System.out.println("remoteAddr: " + remoteAddr + ", trusted ip: "      + trustedIpAddress + ", isTrustedIp: " + isTrustedIp);        if (isTrustedIp) { final String username = "myTrusedUser"; final String credentials = "credentials"; final List<String> roles = new ArrayList<String>(); roles.add("user"); roles.add("admin"); final Principal principal = new GenericPrincipal(username,      credentials, roles); request.setUserPrincipal(principal);        }        getNext().invoke(request, response);    }    public void setTrustedIpAddress(final String trustedIpAddress) {        System.out.println("setTrusedIpAddress " + trustedIpAddress);        this.trustedIpAddress = trustedIpAddress;    }}

还有一个配置示例

server.xml

<Valve className="autologinvalve.AutoLoginValve"     trustedIpAddress="127.0.0.1" />


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/447451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号