问题标签 [spring-security-ldap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - 在 Spring Boot OAuth2 授权服务器中使用 Active Directory 身份验证
我正在尝试使用 Spring Boot 和 OAuth2 设置概念证明。我已经建立了一些与此处概述的项目非常相似的项目:
https://spring.io/guides/tutorials/spring-boot-oauth2/
在这里:https ://spring.io/guides/tutorials/spring-security-and-angular-js/
与我的主要区别是我遗漏了所有 AngularJS 的东西。
我有以下服务:
- 授权服务器
- 资源服务器(作为受保护的 OAuth2 客户端)
- UI 服务器(作为受保护的 OAuth2 客户端)
我想要发生的只是:
- 访问 UI 服务器
- 重定向到身份验证服务器并提示输入凭据
- 然后 UI 服务器将从资源服务器获取一些文本并显示它们
我可以通过身份验证服务器上的基本身份验证使这一切正常工作。但是,我希望能够将基本身份验证替换为 Active Directory 中的身份验证。
我有几个其他的 Spring Boot 项目可以进行 AD 身份验证,并且可以正常工作,但是每当我尝试将其放入其中时,都会出错。我认为这与身份验证服务器端点周围的安全性有关,但我不确定是什么。
另外,我不清楚在生产环境中哪些端点应该通过什么协议(OAuth2 v. Basic)来保护?文档建议应使用 Basic 保护某些端点。所有“OAuth2 客户端”都应该以某种方式在他们的请求中包含这些凭据吗?
这是我的身份验证服务器应用程序(添加了 Active Directory 位):
}
基本上然后发生的事情是当我点击 UI 服务器时我得到了这个:
如果我对授权服务器执行此操作:
看起来登录端点现在需要一个不记名令牌?我不知道现在如何进行...
任何帮助/建议将不胜感激...
java - 如何在 Spring Security 中启用内容安全策略以选择性地 http 模式
我的弹簧安全配置如下所示:
现在,对于上面带有 security="none" 的 http 模式,我想为此启用内容安全策略 (CSP)。只要我保持 security="none",我认为我不能将 CSP 应用于它。
在 Spring Security 中启用 CSP 的标头如下:
现在,我只想将此标头应用于我现在有 security="none" 的前两个 http 模式,而不是我在下一个 http 块中添加的其余 URL。我只是找不到办法。可能吗?有人可以建议吗?
我不需要为前两种模式定义 entry-point-ref。但是,删除 security="none" 会迫使我为它定义一个。请注意,我想要的只是能够为那些选定的模式启用 CSP,仅此而已。请帮忙!
更新:
java - 没有全名的 Spring Security Active Directory LDAP 身份验证
使用 Spring Security 3.2 我已经配置了 ActiveDirectoryLdapAuthenticationProvider。我可以使用全名示例 sharon@mydomain.com 进行身份验证,但是当我尝试仅使用用户名“sharon”进行身份验证时,出现以下错误
根据弹簧安全文件:
例如,名为“Sharon”的用户将能够通过输入用户名 sharon 或完整的 Active Directory userPrincipalName(即 sharon@mydomain.com)进行身份验证
我的配置
我的配置有什么错误。
grails - grails-spring-security-ldap 插件配置 LDAP 连接超时
我正在尝试使用 grails-spring-security-ldap 插件(版本 2)配置 LDAP 连接超时,但找不到正确的配置。
例如,使用此配置:
grails.plugin.springsecurity.ldap.context.server = "ldaps://host1 ldaps://host2"
我一直在测试 host1 不可用的场景,期望连接超时是我配置的。症状有两件事:
1. 服务器需要大约额外的 3 分钟才能启动。即它在 LDAP 配置步骤中等待几分钟,然后故障转移到 host2。
2. 登录尝试似乎有大约 10 秒的故障转移超时。
所以我假设我的配置尝试没有被应用。
我已经尝试了这两种方法都没有成功:
1. Config.groovy 值:grails.plugin.springsecurity.ldap.context.baseEnvironmentProperties = ['com.sun.jndi.ldap.connect.timeout': '2000']
2. 启动 env 属性:-Dcom.sun.jndi.ldap.connect.timeout=2000
关于我做错了什么的想法?
spring - Spring LDAP 搜索查询 - 并过滤返回重复响应
尝试在目录中按姓氏搜索用户。使用以下查询
AndFilter andFilter = new AndFilter(); andFilter.append(new EqualsFilter(LDAPAttributeConstants.LAST_NAME, userInformation.getLastName())); List searchList = ldapTemplate.search(appContainer, andFilter.encode(), controls, new UserDetailsMapper());
获取同一用户的多个重复值作为响应。检查目录,只有一个这样的用户存在。如何停止返回的重复值?并且根本不显示具有相同姓氏的其他用户...查询有问题...?...请帮助
例如响应得到: 0: { "userId": "TestA123" "firstName": "abc" "lastName": "def" "emailId": "abcdef@gmail.com" "guid": "b%25252525252525252525252525252525252525252525252525252525252FrkUA1%25252525252525252525252525252525252525252525252525252525252xQABAeKAziw%25252525252525252525252525252525252525252525252525252525253D%25252525252525252525252525252525252525252525252525252525253D" }- 1: { "userId": "TestA123" "firstName": "abc" "lastName": "def" "emailId": "abcdef@gmail.com" "guid": "b%25252525252525252525252525252525252525252525252525252525252FrkUA1%25252525252525252525252525252525252525252525252525252525252xQABAeKAziw%25252525252525252525252525252525252525252525252525252525253D%25252525252525252525252525252525252525252525252525252525253D" }- 2: { "userId": "TestA123" "firstName": "abc" "lastName": "def" "emailId": "abcdef@gmail.com" "guid" : "b%25252525252525252525252525252525252525252525252525252525252FrkUA1%25252525252525252525252525252525252525252525252525252525252xQABAeKAziw%25252525252525252525252525252525252525252525252525252525253D%25252525252525252525252525252525252525252525252525252525253D" }- 3: { "userId": "TestA123" "firstName": "abc" "lastName": "def" "emailId": "abcdef@gmail.com" "guid": "b%25252525252525252525252525252525252525252525252525252525252FrkUA1%25252525252525252525252525252525252525252525252525252525252xQABAeKAziw%25252525252525252525252525252525252525252525252525252525253D%25252525252525252525252525252525252525252525252525252525253D" }
spring - 如何在spring oauth授权服务中为每个clientId配置身份验证提供程序
我正在尝试确定是否可以在同一个 spring oauth2 授权服务中为每个客户端 ID 使用不同的身份验证提供程序。
特别是,我想允许外部用户登录我们公司网站的资源所有者密码令牌授予,以及对公司用户的隐式授予。企业用户存储在我们的企业 Active Directory 服务器中,而外部用户存储在单独的 LDAP 服务器中。
是否可以以某种方式将 AuthenticationManager 绑定到 clientId?
java - Spring Security LDAP:错误代码 49 - 无法绑定 principalDn
我正在使用 Spring security ldap 3.2.6 并且能够成功地为某些用户进行身份验证,但对于某些用户来说却失败了,并出现以下错误
安全 Java 配置
我传递了像 2000791@mydomain.net 这样的全名,它适用于某些用户而不适用于其他用户。LDAP 管理员表示该帐户稳定、活跃且未锁定。那么可能是什么问题。
tomcat - Grails 3 和 Spring Security LDAP 未加密流量
我在 Tomcat 8 上运行 Grails 3 应用程序。我开发的应用程序通过 HTTPS,并使用 grails spring security LDAP 插件进行身份验证。(插件提供的默认登录页面,没有自定义) Tomcat 被启用以仅使用 HTTPS 而 HTTP 被禁用。
我的 application.groovy 文件还包含以下弹簧安全代码:
(其他细节只是查询内容的配置参数等)
这是我的测试场景:
我有一台 Windows 机器运行应用程序,托管在 Ubuntu 机器上。ubuntu 机器向 AD(Active Directory)机器发出 LDAP 请求。供参考,以下是IP:
在监控来自 .1(Windows 机器)的 TCP 流量后,一切都是乱码,无法读取。当嗅探从 .10 到 .4(Tomcat 到 AD)的数据包时,LDAP 数据包是明文形式的。当然,我认为这不应该是这样的。我需要在 tomcat 中做一些额外的步骤来确保 ldap 流量被加密吗?
grails - 将 Grails 从 2.1.4 升级到 2.4.0 并将 JDK 从 1.7 升级到 1.8 时出现问题
我们有一个由 grails 2.1.4 和 JDK 1.7 实现的应用程序,我们需要将其迁移到 grails 2.4.0 和 JDK 1.8。
在更新到 grails 2.4.0 时,以下是我们完成的更改。
- 更新了 BuildConfig.groovy 和 application.properties 文件中的所有插件。
许多类已弃用,因此我使用了 grails.util.Holders 类而不是以下已弃用的类。
org.codehaus.groovy.grails.commons.ApplicationHolder org.codehaus.groovy.grails.commons.ConfigurationHolder org.codehaus.groovy.grails.plugins.PluginManagerHolder
对于少数类,我已根据 grails 2.4.0 更改了导入包
- 最新的richUI 插件不可用,所以我在richUI 插件groovy 类中更新了Holders 类而不是ConfigurationHolder。
成功构建战争并在tomcat中部署战争。
问题是无法将链接从 urlmappings.groovy 重定向到主控制器和适当的 gsp。
- 试图重定向到 project(index.gsp) 中的另一个 gsp,但它不能。
- 创建了新的 gsp(hello.gsp) 并从 urlmappings.groovy 重定向到 hello.gsp,但它不起作用。
尝试加载应用程序 URL http://localhost:8080/abc时,它将重定向到http://localhost:8080/abc/login/auth显示页面无法显示
在调试时,控制从 urlmappings.groovy 转到 bootstrap.groovy,而且它不会在任何地方导航。
任何帮助表示赞赏。提前致谢
添加 Urlmappings.groovy
static mappings = {
"/$controller/$action?/$id?"{ constraints {
// 在这里应用约束
} }
// Home
"/"(controller:"home",action:"index")
// 报告服务urls
"/services/report"(controller: "BirtReport"){
action=[GET:"list"]
}
"500"(view:'/error')
}
在运行应用程序时,我在 stacktrace.log 中收到以下错误
错误 context.GrailsContextLoaderListener - 初始化应用程序时出错:在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义名称为“pluginManager”的 bean 创建错误:调用 init 方法失败;嵌套异常是 java.lang.RuntimeException:无法使用类 org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass 类 org.springframework.beans.factory.BeanCreationException 的类参数找到构造函数:创建 ServletContext 中定义的名称为“pluginManager”的 bean 时出错资源[/WEB-INF/applicationContext.xml]:init方法调用失败;嵌套异常是 java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass
在 java.util.concurrent.FutureTask.run(FutureTask.java:266)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :617)
在 java.lang.Thread.run(Thread.java:745)
引起:java.lang.RuntimeException: 无法使用类 org.codehaus.groovy.grails.commons.DefaultGrailsServiceClass 的类参数找到构造函数
... 4 更多
原因:java.lang.reflect.InvocationTargetException
... 4 更多
原因:java.lang.NoClassDefFoundError: org/pentaho/di/core/logging/LogLevel
at java.lang.Class.privateGetDeclaredMethods(Class.java:第2693章
在 java.lang.Class.getDeclaredMethods(Class.java:1967)
... 4 更多
原因:java.lang.ClassNotFoundException: org.pentaho.di.core.logging.LogLevel
at java.net.URLClassLoader$1.run( URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java: 424)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 还有 6 个
spring-security - 从 ldap + shibboleth idp 获取 spring sp 中的用户属性
我能够将基本的 spring 应用程序https://github.com/UniconLabs/shibboleth-sample-java-sp与 shibboleth idp 和 ldap 集成。登录和注销功能运行良好。但我没有在我的 sp(spring app) 中找到任何与检索用户属性(如名字、姓氏、常用名等)相关的文档
请帮帮我。