Несколько маркеров в этой строке - Тип NoOpPasswordEncoder устарел - Метод getInstance () из типа NoOpPasswordEncoder устарел - PullRequest
0 голосов
/ 02 сентября 2018

Я работаю на примере Spring Cloud + Boot. В этом примере я хочу сделать SSO. Когда я запускаю это приложение, я получаю ответ нормально, но выглядит как

Несколько маркеров на этой линии - Тип NoOpPasswordEncoder устарел - Метод getInstance () из типа NoOpPasswordEncoder имеет вид осуждается

application.properties

server.port: 9000
server.servlet.context-path: /services
security.oauth2.client.clientId: pluralsight
security.oauth2.client.clientSecret: pluralsightsecret
security.oauth2.client.authorized-grant-types: authorization_code,refresh_token,password,client_credentials
security.oauth2.client.scope:toll_read,toll_report

ServiceConfig.java

@Configuration
public class ServiceConfig extends GlobalAuthenticationConfigurerAdapter {

    @Override
    public void init(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
            .passwordEncoder(NoOpPasswordEncoder.getInstance())
            .withUser("agoldberg").password("pass1").roles("USER")
            .and()
            .withUser("bgoldberg").password("pass2").roles("USER", "OPERATOR");
    }
}

MainMethod:

@SpringBootApplication
@EnableAuthorizationServer
public class PluralsightSpringcloudM4SecureauthserverApplication {

    public static void main(String[] args) {
        SpringApplication.run(PluralsightSpringcloudM4SecureauthserverApplication.class, args);
    }
}

Но STS, показывает ошибку. Что такое замена устаревшего метода?

enter image description here

Выход: enter image description here

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

Мне удалось решить эту проблему с помощью приведенного ниже кода. Я использую версию Spring Boot 2.0.4.RELEASE. Готово!

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.authentication.configuration.GlobalAuthenticationConfigurerAdapter;

@Configuration
public class ServiceConfig extends GlobalAuthenticationConfigurerAdapter {

    @Override
    public void init(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
            .withUser("agoldberg").password("{noop}pass1").roles("USER")
            .and()
            .withUser("bgoldberg").password("{noop}pass2").roles("USER", "OPERATOR");
    }
}
0 голосов
/ 02 сентября 2018

Вы не должны использовать этот кодировщик паролей, потому что это небезопасно. Из официальных документов :

Этот PasswordEncoder не является безопасным. Вместо этого используйте адаптивную одностороннюю функцию, такую ​​как BCryptPasswordEncoder, Pbkdf2PasswordEncoder или SCryptPasswordEncoder. Еще лучше использовать DelegatingPasswordEncoder, который поддерживает обновление пароля.

...