如何在 Wildfly Web 应用中实现 LDAP 登录

     2023-02-27     124

关键词:

【中文标题】如何在 Wildfly Web 应用中实现 LDAP 登录【英文标题】:How implement LDAP login in wildfly web app 【发布时间】:2015-07-23 01:54:41 【问题描述】:

如何在 Java EE WildFly 应用中实现 LDAP 身份验证?有没有例子?

我是 Java EE 的新手,需要使用 LDAP 编写应用程序,但我遇到了困难。我读了一本关于在 WildFly 中开发的书,但那里没有关于 LDAP 的信息。

【问题讨论】:

【参考方案1】:

必须执行以下操作步骤以使用 LDAP 验证您的应用程序(假设 LDAP 已设置)。

standalone.xml 文件中创建一个新的安全域。

<security-domain name="LDAPAuth">
  <authentication>
    <login-module code="LdapExtended" flag="required">
      <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
      <module-option name="java.naming.provider.url" value="ldap://localhost:389"/>
      <module-option name="java.naming.security.authentication" value="simple"/>
      <module-option name="bindDN" value="uid=admin,dc=acme,dc=com"/>
      <module-option name="bindCredential" value="secret"/>
      <module-option name="baseCtxDN" value="ou=People,dc=acme,dc=com"/>
      <module-option name="baseFilter" value="(uid=0)"/>
      <module-option name="rolesCtxDN" value="ou=Roles,dc=acme,dc=com"/>
      <module-option name="roleFilter" value="(member=1)"/>
      <module-option name="roleAttributeID" value="cn"/>
      <module-option name="searchScope" value="ONELEVEL_SCOPE"/>
      <module-option name="allowEmptyPasswords" value="true"/>
    </login-module>
  </authentication> 
</security-domain>

您必须相应地更改值

现在您必须在应用程序的 web.xml 中添加安全上下文。假设您只希望具有user 角色的用户登录到您的应用程序,那么您可以添加类似这样的内容

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

        <security-constraint>
            <web-resource-collection>
                <web-resource-name>HtmlAuth</web-resource-name>
                <description>application security constraints</description>
                <url-pattern>/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
            </web-resource-collection>
            <auth-constraint>
                <role-name>Manager</role-name>
            </auth-constraint>
        </security-constraint>
        <login-config>
            <auth-method>BASIC</auth-method>
            <realm-name>LDAPAuth realm</realm-name>
        </login-config>
        <security-role>
            <role-name>user</role-name>
        </security-role>
    </web-app>

您必须在您的 WEB-INF 文件夹中放置一个 jboss-web.xml,并包含以下内容

    <jboss-web>
           <security-domain>java:/jaas/LDAPAuth</security-domain>
    </jboss-web>

你可以找到关于这个主题的精彩教程here

【讨论】:

谢谢它的工作。我需要为用户定义我自己的组(我不能使用来自 LDAP 的组)。默认情况下,用户只能读取,但我想要另外两个组。一个用于管理员,第二个用于 deleopers。你知道怎么做吗?映射用户->我想在数据库中拥有的组。 @skoczo 我认为您可以添加类似 &lt;login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required"&gt; &lt;module-option name="dsJndiName" value="java:jboss/datasource/datasourceName"/&gt; &lt;module-option name="rolesQuery" value="select roleid, 'Roles' from user_roles where userid=?"/&gt; &lt;module-option name="password-stacking" value="useFirstPass"/&gt; &lt;/login-module&gt; 的内容,但我对此并不完全确定,最好您可以展示一些您当前的实现并提出一个新问题

如何在我的 Web MVC 应用程序中实现访问控制列表?

】如何在我的WebMVC应用程序中实现访问控制列表?【英文标题】:HowcanIimplementanAccessControlListinmyWebMVCapplication?【发布时间】:2011-03-2616:52:11【问题描述】:第一个问题请您解释一下如何在MVC中实现最简单的ACL。这是在Controller中... 查看详情

如何在 Spring Web 应用程序中实现文件夹上传?

】如何在SpringWeb应用程序中实现文件夹上传?【英文标题】:HowtoimplementfolderuploadinaSpringwebapp?【发布时间】:2014-11-1105:14:20【问题描述】:我想在我的Web应用程序中实现类似于GoogleDrive样式的文件/目录上传(我认为这是解释我想... 查看详情

如何在 Flutter Web 中实现 Stripe 支付?

】如何在FlutterWeb中实现Stripe支付?【英文标题】:HowtoimplementStripePaymentsinFlutterWeb?【发布时间】:2021-01-3122:52:29【问题描述】:我正在尝试在我的Web应用(Flutter)中实现StripePayments,但我在https://pub.dev/中找不到任何包来满足我的愿... 查看详情

如何在 Java Web 应用程序中实现复杂的页面流

】如何在JavaWeb应用程序中实现复杂的页面流【英文标题】:HowtoimplementacomplexpageflowinaJavaWebapplication【发布时间】:2012-11-0404:10:51【问题描述】:我正在尝试将一个相当复杂的页面流(100多个页面)实现为传统的Web应用程序。我... 查看详情

如何使用 laravel 5.1+ 在 web 应用程序中实现许可功能

】如何使用laravel5.1+在web应用程序中实现许可功能【英文标题】:Howtoimplementlicensingfeatureinwebappusinglaravel5.1+【发布时间】:2017-02-0814:17:20【问题描述】:我正在开发laravel5.1+项目,该项目分为两部分,第一部分是集中式数据库管... 查看详情

如何在单页移动 Web 应用程序中实现我自己的历史堆栈?

】如何在单页移动Web应用程序中实现我自己的历史堆栈?【英文标题】:Howtoimplementmyownhistorystackinasinglepagemobilewebapplication?【发布时间】:2012-06-0610:57:53【问题描述】:我有一个使用Backbone和Zepto开发的单页移动应用程序。它可以... 查看详情

如何在 Hybrid iOS 应用程序中实现 WebRTC?

】如何在HybridiOS应用程序中实现WebRTC?【英文标题】:HowdoIimplementWebRTCinHybridiOSapp?【发布时间】:2016-09-1716:23:32【问题描述】:我有一个使用WebRTC进行通信的网页。由于有Web界面,我不打算开发原生应用程序,因此我决定在Web视... 查看详情

如何在 MERN 应用中实现登录功能?

】如何在MERN应用中实现登录功能?【英文标题】:HowdoIimplementloginfunctionalityinaMERNapp?【发布时间】:2021-10-0118:42:05【问题描述】:我正在我的本地主机(前端端口3000,后端端口5000)上开发一个(简单易用的)笔记Web应用程序。... 查看详情

如何在我的 Web 应用程序中实现 REST。我想为我的网站制作一个休息 API?

】如何在我的Web应用程序中实现REST。我想为我的网站制作一个休息API?【英文标题】:HowtoimplementRESTinmyWebApplication.IwanttomakearestAPIformywebsite?【发布时间】:2011-08-2206:04:22【问题描述】:我正在开发一个企业应用程序,需要使用RE... 查看详情

java示例代码_在web应用程序中实现自动注销

java示例代码_在web应用程序中实现自动注销 查看详情

在 ASP.net Web 应用程序中实现支付网关

】在ASP.netWeb应用程序中实现支付网关【英文标题】:ImplementingPaymentGatewaysinASP.netWebApplication【发布时间】:2011-09-1109:53:04【问题描述】:我在.NetFramework4.0下使用C#在ASP.Net中开发Web应用程序。现在是时候在该应用程序中实现支付... 查看详情

如何在 Flask 中实现令牌认证?

】如何在Flask中实现令牌认证?【英文标题】:HowdoyouimplementtokenauthenticationinFlask?【发布时间】:2015-12-0705:41:27【问题描述】:我正在尝试允许用户使用他们的帐户从单独的Web服务登录到我的Flask应用程序。我可以联系此Web服务的... 查看详情

java示例代码_在web应用程序中实现HTTPS登录页面

java示例代码_在web应用程序中实现HTTPS登录页面 查看详情

如何在 webapp 中实现 firebase 云消息传递? [关闭]

】如何在webapp中实现firebase云消息传递?[关闭]【英文标题】:Howtoimplementfirebasecloudmessaginginwebapp?[closed]【发布时间】:2016-06-3018:13:20【问题描述】:如果有人有任何示例应用程序可以在web应用程序中实现firebase云消息传递,这将... 查看详情

WildFly:如何分离 Web 应用程序?

】WildFly:如何分离Web应用程序?【英文标题】:WildFly:Howtoseparatewebapplications?【发布时间】:2019-02-1309:45:11【问题描述】:我在WildFly15上有2个JEE应用程序的Web界面。两者都有不同的SSL证书。它们也有不同的REST方法/URL。并且客户... 查看详情

在 Google Web Toolkit (GWT) 中实现页眉、页脚和菜单栏

...9-1718:25:23【问题描述】:我刚开始学习GoogleWebToolkit(GWT)。如何在我的GWT应用程序中实现页眉、左侧导航栏和页脚?如何将页眉和页脚放在一个页面中并在所有其他页面中重复使用?请帮助我如何实 查看详情

如何在 WCF Web 服务中实现策略?

】如何在WCFWeb服务中实现策略?【英文标题】:HowtoimplementPolicyinWCFwebservice?【发布时间】:2016-08-0723:00:14【问题描述】:我想创建一个与给定Web服务相同的Web服务,仅取决于服务描述语言。我设法创建了完全相同的服务,除了这... 查看详情

java示例代码_如何在Java web环境中实现RSS提要

java示例代码_如何在Java web环境中实现RSS提要 查看详情