You need to enable JavaScript to run this app. Tomcat无需编写Java war包通过Active Directory认证导出静态内容的实现方法
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat无需编写Java war包通过Active Directory认证导出静态内容的实现方法

完全可以仅通过Tomcat内置功能实现该需求,不需要编写任何Java代码,也不需要手动打包WAR文件,只需按以下步骤配置即可:

实现步骤

1. 准备静态资源目录

在Tomcat的webapps目录下新建独立文件夹,命名为你想要的访问路径名,例如shared-files,将所有需要导出的静态资源放入该文件夹即可,Tomcat会自动将该目录识别为独立的应用上下文。

2. 配置AD/JNDI Realm

如果仅需要给该静态资源目录配置AD认证,推荐单独配置上下文级别的Realm:

  1. 在Tomcat的conf/Catalina/localhost目录下新建和上下文同名的XML文件,例如shared-files.xml
  2. 填入以下配置,根据你实际的AD信息修改对应参数:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="你本地静态文件夹的绝对路径" readonly="true">
    <!-- JNDI Realm绑定AD配置 -->
    <Realm className="org.apache.catalina.realm.JNDIRealm"
           connectionURL="ldap://你的AD域控制器地址:389"
           connectionName="CN=AD查询服务账号,OU=服务账号组,DC=你的域名,DC=com"
           connectionPassword="AD查询服务账号密码"
           userBase="OU=用户根目录,DC=你的域名,DC=com"
           userSearch="(sAMAccountName={0})"
           userSubtree="true"
           roleBase="OU=权限组根目录,DC=你的域名,DC=com"
           roleName="cn"
           roleSearch="(member={0})"
           roleSubtree="true"
    />
</Context>

3. 配置认证规则

你仅需要在静态资源目录下新建极简的WEB-INF/web.xml文件即可,全程不需要编写任何Java代码,配置模板如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Tomcat 10+用JakartaEE schema,9及以下版本替换为JavaEE对应schema即可 -->
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

    <!-- 安全约束:所有资源必须认证后访问 -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>共享文件目录</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <!-- 替换为实际允许访问的AD组名 -->
            <role-name>允许访问共享文件的AD组名</role-name>
        </auth-constraint>
    </security-constraint>

    <!-- 认证方式:BASIC为浏览器弹窗认证,也可自行调整为FORM模式自定义登录页 -->
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>AD域身份认证</realm-name>
    </login-config>

    <!-- 声明安全角色 -->
    <security-role>
        <role-name>允许访问共享文件的AD组名</role-name>
    </security-role>
</web-app>

4. 验证部署

重启Tomcat后访问http://你的Tomcat服务地址/shared-files,会弹出认证窗口,输入符合权限的AD账号密码即可访问静态资源,全程默认只读,不支持修改、上传、删除操作。

注意事项
  • 若需生产环境使用,建议配置Tomcat SSL证书,避免BASIC认证的账号密码明文传输
  • 静态资源目录的系统权限需设置为Tomcat运行用户只读,降低安全风险
  • 若不需要单独给该上下文配置Realm,也可以将Realm配置到Tomcat的conf/server.xml的Host或Engine节点下,全局生效

内容的提问来源于stack exchange,提问作者Volodymyr Mutel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 04:42:01