- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试运行一个基本的安全应用程序,当我在 Postman 中输入凭据时,我没有收到预期的 token 。我正在学习基本教程并正确执行了所有步骤,但我得到 401“未授权”状态。我试过使用 Bcrypt 密码编码器,我得到了相同的结果
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
@Configuration
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter{
@Autowired
private AuthenticationManager authManager;
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception{
endpoints.authenticationManager(authManager);
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.inMemory().withClient("webapp").secret("websecret").authorizedGrantTypes("password").scopes("read,write,trust");
}
}
package com.example.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public AuthenticationManager authenticationManager() throws Exception{
return super.authenticationManagerBean();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user1").password("password1").roles("USER");
}
}
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
@SpringBootApplication
@EnableAuthorizationServer
public class SpringMicroserviceOathApplication {
public static void main(String[] args) {
SpringApplication.run(SpringMicroserviceOathApplication.class, args);
}
}
pom.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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>spring-microservice-oath</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-microservice-oath</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.RC2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hsqldb/hsqldb -->
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
</project>
最佳答案
注册一个 BCryptPasswordEncoder
类型的 bean 并在你的 password("password1")
和你的 secret("websecret")
中使用编码器>.
WebSecurityConfig.java
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
// ...
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user1")
.password(this.passwordEncoder().encode("password1")).roles("USER");
}
@Bean
@Primary
public BCryptPasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
AuthorizationServerConfig.java
@Configuration
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
// ...
@Autowired
private BCryptPasswordEncoder passwordEncoder;
// ...
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.inMemory().withClient("webapp").secret(passwordEncoder.encode("websecret")).authorizedGrantTypes("password").scopes("read,write,trust");
}
}
关于spring-boot - Spring 5 安全 : 'There is no passwordencoder mapped for the id null' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58842364/
目前我得到了主课: package com.recweb.springboot; import org.springframework.boot.SpringApplication; import o
我的密码编码器有问题, 我的代码: @Service public class UserService { private static final String DEFAULT_ROLE =
我正在使用 Spring-Boot v1.3.0.M2。我正在尝试使用注释定义一个 o.s.s.c.p.PasswordEncoder 。我的配置类如下所示。这个例子运行良好。 @Configurat
实现 Bcrypt 密码编码器后,我无法进行身份验证(凭据无效)。这是我要添加的用户: userRepository.save(new User("First", "Last", "user", "u
spring boot报错:There is no PasswordEncoder mapped for the id "null" 原因:新版spring boot需要在自定义的WebSecurit
我目前正在我的大学从事 Spring Boot/Angular 项目。我正在为 BCryptPasswordEncoder 的匹配函数苦苦挣扎,它总是返回 false。 用户.java @Entity
我正在尝试学习 spring 并创建一个网站,其中身份验证将通过登录页面关闭,角度传递给 spring,需要使用 ldap 进行身份验证。我想我会从 Spring 站点开始并浏览那里的指南,但它似乎使
我成功地建立了内存认证。但是当我要使用数据库构建它时,会出现这个错误。 There is no PasswordEncoder mapped for the id "null" 这是后续教程 - Sp
我正在使用 Spring 4.0.8 RELEASE 和 Spring-Security 3.2.5 RELEASE 我正在使用只有注册用户才能访问的 HTTP 摘要构建 REST Web 服务。 我
从 Spring Security 3.1.4.RELEASE 开始,旧的 org.springframework.security.authentication.encoding.PasswordE
我已经在我的 struts2 应用程序上实现了 Spring security,它运行良好,但它在第 3 行遇到错误 java.lang.NullPointerException。 虽然看起来 pas
我已经在我的 struts2 应用程序上实现了 Spring security,它运行良好,但它在第 3 行遇到错误 java.lang.NullPointerException。 虽然看起来 pas
在我的网络应用程序上部署时出现此错误 Context initialization failed org.springframework.beans.factory.BeanCreat
我正在从 Spring Boot 1.4.9 迁移到 Spring Boot 2.0 以及 Spring Security 5,并且我尝试通过 OAuth 2 进行身份验证。但我收到此错误: java
我已经存储(并编码)了一个电子邮件密码。我使用过 PasswordEncoder(Spring 安全)。 passwordEncoder.encode(password); 现在我需要对其进行解码以便
我可以使用一些建议来模拟 Grails 单元测试中使用的自动连接依赖项。我已经省略了大部分不必要的代码,只给出了测试类和被测文件类中的相关方法 class UserService { def
我正在从 Spring Boot 1.4.9 迁移到 Spring Boot 2.0 以及 Spring Security 5,我正在尝试通过 OAuth 2 进行身份验证。但是我收到了这个错误: j
我正在尝试运行一个基本的安全应用程序,当我在 Postman 中输入凭据时,我没有收到预期的 token 。我正在学习基本教程并正确执行了所有步骤,但我得到 401“未授权”状态。我试过使用 Bcry
使用 Spring Security Oauth2 时,我正在尝试对存储在数据库中的客户端 secret 进行 BCrypt 加密。我可以看到 JdbcClientDetailsService有一个
升级IDEA后启动项目时出现问题。 当前错误如下: CONFIGURE SUCCESSFUL in 2s |Running application... > Task :compileJava NO-
我是一名优秀的程序员,十分优秀!