对于Spring启动中的Spring Security设置。LDAP身份验证提供程序默认配置为使用BindAuthenticator类。
该类包含方法
/**
* Allows subclasses to inspect the exception thrown by an attempt to bind with a
* particular DN. The default implementation just reports the failure to the debug
* logger.
*/
protected void handleBindException(String userDn, String username, Throwable cause) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to bind as " + userDn + ": " + cause);
}
}
此方法用于处理与身份验证相关的异常,如无效凭据。
我通过定义LDAP上下文而不是使用Spring BootLDAPAuthenticationProviderConfigurer解决了这个问题。
然后创建FilterBasedLdapUserSearch并用my ConnectBindAuthenticator覆盖BindAuthentication。
我为Spring Boot配置创建了一个单独的LDAPConfiguration类,并将所有这些自定义对象注册为bean。
@Bean
public DefaultSpringSecurityContextSource contextSource() {
DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource(env.getProperty("ldap.url"));
contextSource.setBase(env.getProperty("ldap.base"));
contextSource.setUserDn(env.getProperty("ldap.managerDn"));
contextSource.setPassword(env.getProperty("ldap.managerPassword"));
return contextSource;
}
@Bean
public ConnectBindAuthenticator bindAuthenticator() {
ConnectBindAuthenticator connectBindAuthenticator = new ConnectBindAuthenticator(contextSource());
connectBindAuthenticator.setUserSearch(ldapUserSearch());
connectBindAuthenticator.setUserDnPatterns(new String[]{env.getProperty("ldap.managerDn")});
return connectBindAuthenticator;
}
@Bean
public LdapUserSearch ldapUserSearch() {
return new FilterBasedLdapUserSearch("", env.getProperty("ldap.userSearchFilter"), contextSource());
}
问题内容: 我有一些AES / GCM加密数据,想对其解密。我想绕过身份验证解密它,因为数据不包含身份验证信息(数据由第三方应用程序加密)。我尝试使用javax.crypto包进行解密,但它始终会引发标签不匹配错误。有什么方法可以绕过此标签检查并解密数据。数据使用AES128加密,并且使用12字节初始化向量。 编辑:我得到了这个问题的临时解决方案。不知道这是否是正确的方法。 问题答案: 是的,可以
我正在使用SpringBoot开发具有微服务架构的Rest Backend。为了保护endpoint,我使用了JWT令牌机制。我正在使用Zuul API网关。 如果请求需要权限(来自JWT的角色),它将被转发到正确的微服务。Zuul api网关的“WebSecurityConfigrerAdapter”如下。 这样,我必须在这个类中编写每个请求授权部分。因此,我希望使用方法级安全性,即“Enabl
我使用Firefox WebDriver在Python 2.7与硒。我的python程序启动火狐浏览器,并在运行程序时访问不同的网站。但是,我需要设置具有身份验证的代理,以便当程序访问任何网站时,它将通过代理服务器访问。 关于SO也有一些类似的问题。但是,没有针对Python的Selenium Firefox WebDriver的特定解决方案。 Python Selenium WebDrive-代
问题内容: 我正在尝试连接到HTTPS URL,但是我需要使用客户端身份验证以及第三方软件在我的系统上放置的证书。 我丝毫不知道如何找到或使用它,我所要做的只是C#示例代码,这与我为此找到的所有Java答案都大不相同。(例如,KeyStore显然需要某种密码吗?) 这是我拥有的C#示例代码 然后,它仅遍历WS2_store_Certs CertificateCollection并一路检查它们。再进
我的应用程序从Oracle Access Manager SSO获取一个带有用户名的AUTH_用户请求标头。Spring Security“附加主题”2.2。1有一个“PreAuth”的示例,这似乎是我需要的,但不是一个完整的工作示例。 下面的片段来自文档/示例,而不是基于注释的配置。 Siteminder示例配置-使用带有RequestHeaderAuthenticationFilter和Pre
问题内容: 我正在用Java运行这个简单的硒测试: 但是在我的办公室这里需要代理身份验证,我不知道如何设置它。 我必须将我的用户名和密码放在某个地方。 你能帮我吗? 问题答案: PhantomJS使用从命令行(docs)设置的三个代理选项。 指定要使用的代理服务器(例如)。 指定代理服务器的类型(默认为)。 指定代理的认证信息,例如。 要使用这些功能,您必须将它们添加到DesiredCapabil