xiaocao83 2014-09-23 07:46 采纳率: 0%
浏览 1381

如何使用tomcat 配置连接ldap

你好,目前在做一个手机app,想通过公司内部域账号认证登录,公司其他app一般是通过weblogic搭建服务,目前这个app需要通过tomcat搭建,tomcat仅实现域账号认证的处理,从来没有做过这方面,不知道怎么下手,能否指导一下,能附带一个demo最好了,谢谢。
目前仅知道可以通过ldap来实现,公司的域账号是现成的,已经知道地址为:ldap://10.20.13.23:389,想知道tomcat需要怎么配置啊?谢谢。

我在网上找了一个资料【http://blog.csdn.net/davidgjm/article/details/2078826】,但是也搞不定,按其配置server.xml,配置之后连tomcat启动都报错了。谢谢。

注:本人新手,最好有步骤,谢谢。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 18:25
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要使用Apache Tomcat进行LDAP(轻量目录访问协议)身份验证,您需要按照以下步骤操作:

    1. 安装和配置Apache LDAP服务器

    首先确保您的Tomcat服务器已经正确配置,并且可以与外部LDAP服务器通信。您可能需要从Apache的官方网站下载并安装最新版本的Apache LDAP服务器。以下是基本的安装指南:

    1. 设置LDAP服务器端口

    将Tomcat的监听端口更改为与LDAP服务器相同的端口。例如,如果您的LDAP服务器位于ldap://10.20.13.23:389,则可以在Tomcat的配置文件中添加以下行以更改监听端口:

    <Connector port="389" protocol="ntlm" connectionTimeout="20000"
                 redirectPort="443" />
    
    1. 创建虚拟目录

    为了使用户能够安全地访问特定的资源,您可以创建一个名为test的虚拟目录。然后,确保在Tomcat的配置文件中指定了此虚拟目录:

    <VirtualHost *:80>
        DirectoryIndex test.html
    
        # 禁用默认的HTTP请求处理器
        <Directory /test/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
        </Directory>
    
    </VirtualHost>
    
    1. 修改服务器端脚本

    在Tomcat的服务器端脚本中,您需要编写脚本来执行LDAP身份验证。通常,这涉及到获取用户的密码、查询数据库中的用户信息以及返回适当的响应。以下是一个示例脚本,它演示了如何执行这些步骤:

    #!/bin/bash
    
    # 从命令行接收用户名和密码
    username=$1
    password=$2
    
    # 创建LDAP会话
    ldap_con=$(python -c "import ldap; conn = ldap.initialize('ldap://10.20.13.23:389'); conn.simple_bind_s('cn=admin,dc=example,dc=com', '$password')")
    
    # 检查是否成功建立会话
    if [[ $? -eq 0 ]]; then
        # 查询用户信息
        user_info=$(python -c "import ldap; conn.search_s('cn=users,ou=people,dc=example,dc=com', '(uid=$username)', '(&(|(objectClass=posixAccount)(cn=$username)))', ldap.SCOPE_SUBTREE)")
    
        if [[ $user_info == *"dn"* ]]; then
            echo "Login successful!"
        else
            echo "Invalid username or password."
        fi
    
    else
        echo "Error: failed to bind to LDAP server"
    fi
    
    exit $?
    
    1. 运行Tomcat应用程序

    现在,您可以在Tomcat服务器上运行新的应用程序。只需确保在server.xml配置文件中指定了正确的端口号和虚拟路径:

    <Context path="/test">
        <Resource>
            <ResourceDescriptor>
                <ResourceType>file</ResourceType>
                <ResourceAccess>
                    <UserGroup name="everyone"/>
                </ResourceAccess>
            </ResourceDescriptor>
        </Resource>
    </Context>
    
    1. 测试应用

    最后,您可以测试您的应用程序是否正常工作。打开浏览器,导航到http://localhost/test,输入用户名(在这里是admin),然后根据提示输入密码。如果一切正常,您应该看到“Login successful!”消息。

    希望以上步骤对您有所帮助!如果您有任何疑问或需要进一步的帮助,请随时提问。祝您好运!

    评论

报告相同问题?