我正在编写一个小应用程序,将其用作微服务的身份验证服务器。(我们正在划分一个旧的单片应用程序)。
此应用程序必须通过LDAP服务器(受用户名和密码保护)登录。用户密码存储为SHA512哈希。但我总是会遇到“糟糕的凭证”错误
这是我的密码
网络安全配置。JAVA
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().fullyAuthenticated().and().formLogin();
}
@Override
protected void configure(final AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(ldapAuthProvider());
auth.ldapAuthentication().passwordCompare().passwordEncoder(new LdapShaPasswordEncoder()).passwordAttribute("userPassword");
super.configure(auth);
}
public LdapAuthenticationProvider ldapAuthProvider() {
DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource("ldap://myldaphost:389/");
contextSource.setUserDn("cn=myuser");
contextSource.setPassword("mypassword");
FilterBasedLdapUserSearch userSearch = new FilterBasedLdapUserSearch("", "(&(cn={0})(estado=activo))", contextSource);
BindAuthenticator bindAuthenticator = new BindAuthenticator(contextSource);
bindAuthenticator.setUserSearch(userSearch);
LdapAuthenticationProvider provider = new LdapAuthenticationProvider(bindAuthenticator);
return provider;
}
}
波姆。xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-authenticating-ldap</artifactId>
<version>0.1.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<!-- tag::security[] -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-ldap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!-- end::security[] -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
HomeController.java
@RestController
public class HomeController {
@RequestMapping("/")
public String index() {
return "Welcome to the home page!";
}
}
applicationContext安全性。来自当前可用的旧应用程序的xml
<beans>
<!-- SECURITY ENABLED -->
<beans profile="security-enabled">
<!-- Data Data Base & LDAP-->
<bean id="ldapAuthProvider" class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
<constructor-arg>
<bean id="bindAuthenticator" class="org.springframework.security.ldap.authentication.BindAuthenticator">
<constructor-arg ref="contextSource" />
<property name="userSearch" ref="userSearch" />
</bean>
</constructor-arg>
</bean>
<bean id="userSearch"
class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
<constructor-arg index="0" value="" />
<constructor-arg index="1" value="(&(cn={0})(estado=activo))" />
<constructor-arg index="2" ref="contextSource" />
</bean>
<bean id="contextSource"
class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<constructor-arg value="myurl" />
<property name="userDn" value="myuser" />
<property name="password" value="mypassword" />
</bean>
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="ldapAuthProvider" />
</security:authentication-manager>
</beans>
我自己解决了
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().fullyAuthenticated().and().formLogin();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication().userSearchFilter("(cn={0})(estado=activo)").contextSource().url("ldap://myurl:389/")
.managerDn("cn=myadmin").managerPassword("mypass");
}
}
我有我的PHP应用程序,当我创建用户我运行这个。 下一步,当我试图在获取密码后登录时,我通过这个javascript p.value=hex_sha512(userPwdControl.value)散列; 然后在运行这个 以上所有代码都是通过php实现的。 现在通过我的Android我想做这个功能p.value=hex_sha512(userPwdControl.value);得到哈希,我尝试通过
本文向大家介绍JavaScript SHA512加密算法详细代码,包括了JavaScript SHA512加密算法详细代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JavaScript SHA512加密算法,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家有所帮助,希望大家继续关注呐喊教程的最新内容。
问题内容: 我写了一个脚本来备份我的MySQL数据库,方法是: 一个cron每天晚上启动它,并将结果发送到另一台服务器。 清晰地显示在我的脚本中,每个人都可以以适当的权限查看它。我也被告知有关/ proc问题(可以在哪里查看cmd运行)。 MySQL文档说: 在命令行上指定密码应该被认为是不安全的。请参见第7.6节“保持密码安全”。 我在任何地方都找不到这个神奇的7.6节。 处理自动mysqldu
每当我启动Hadoop集群时,系统都会询问密码。 我已经在.ssh文件夹中添加了密钥。 开始-dfs.sh 19/01/22 20:38:56警告util.nativeCodeLoader:无法为您的平台加载本机Hadoop库...使用内置Java类(如果适用)在[localhost]xxxx@localhost's password上启动namenode:localhost:启动namenode
问题内容: 我试图弄清楚如何使用crypto模块对nodejs中的密码进行加盐和哈希处理。我可以这样做来创建哈希密码: 但是我对以后如何验证密码感到困惑。 问题答案: 在您使用的任何持久性机制(数据库)中,您都将在哈希值和迭代次数之间存储结果哈希,这两者都是纯文本。如果每个密码使用不同的盐(您应该这样做),则还必须保存该信息。 然后,您将比较新的纯文本密码,使用相同的盐(和迭代次数)对其进行哈希处