下面列出了org.springframework.security.authentication.ProviderManager#org.springframework.security.crypto.password.NoOpPasswordEncoder 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Bean
public PasswordEncoder delegatingPasswordEncoder() {
// Spring Security 5 require storing the encoder id alongside the encoded password
// (e.g. "{md5}hash" for an MD5-encoded password hash), which differs from previous
// versions.
//
// Airsonic unfortunately stores passwords in plain-text, which is why we are setting
// the "no-op" (plain-text) password encoder as a default here. This default will be
// used when no encoder id is present.
//
// This means that legacy Airsonic passwords (stored simply as "password" in the db)
// will be matched like "{noop}password" and will be recognized successfully. In the
// future password encoding updates will be done here.
PasswordEncoder defaultEncoder = NoOpPasswordEncoder.getInstance();
String defaultIdForEncode = "noop";
Map<String, PasswordEncoder> encoders = new HashMap<>();
encoders.put(defaultIdForEncode, defaultEncoder);
DelegatingPasswordEncoder passworEncoder = new DelegatingPasswordEncoder(defaultIdForEncode, encoders);
passworEncoder.setDefaultPasswordEncoderForMatches(defaultEncoder);
return passworEncoder;
}
@Autowired
public void configureGlobal( AuthenticationManagerBuilder auth, UserService userService,
UserDetailsService userDetailsService, SecurityService securityService,
@Lazy CustomLdapAuthenticationProvider customLdapAuthenticationProvider )
throws Exception
{
TwoFactorAuthenticationProvider twoFactorAuthenticationProvider = new TwoFactorAuthenticationProvider();
twoFactorAuthenticationProvider.setPasswordEncoder( encoder() );
twoFactorAuthenticationProvider.setUserService( userService );
twoFactorAuthenticationProvider.setUserDetailsService( userDetailsService );
twoFactorAuthenticationProvider.setSecurityService( securityService );
// configure the Authentication providers
auth
// Two factor
.authenticationProvider( twoFactorAuthenticationProvider )
// LDAP Authentication
.authenticationProvider( customLdapAuthenticationProvider )
// OAUTH2
.userDetailsService( defaultClientDetailsUserDetailsService )
// Use a non-encoding password for oauth2 secrets, since the secret is generated by the client
.passwordEncoder(NoOpPasswordEncoder.getInstance());
}
@Bean
public PasswordEncoder passwordEncoder() {
String encodingAlgo = environment.getProperty(ENCODING_ALGORITHM_PROPERTY_NAME, BCRYPT_ALGORITHM);
if ( encodingAlgo == null || encodingAlgo.isEmpty() ) {
encodingAlgo = BCRYPT_ALGORITHM;
}
switch (encodingAlgo.toLowerCase()) {
case BCRYPT_ALGORITHM:
return new BCryptPasswordEncoder();
case NOOP_ALGORITHM:
return NoOpPasswordEncoder.getInstance();
default:
throw new IllegalArgumentException("Unsupported password encoding algorithm : " + encodingAlgo);
}
}
@Override
public void configure(AuthorizationServerSecurityConfigurer security) {
security
.passwordEncoder(NoOpPasswordEncoder.getInstance()) // client id and secret dont need encryption
.tokenKeyAccess("permitAll()")
.checkTokenAccess("isAuthenticated()")
.allowFormAuthenticationForClients(); // enable client_id / secret on request body form url encoded
}
public static PasswordEncoder newPasswordEncoder(final String encoderType) {
switch (encoderType) {
case "bcrypt":
return new BCryptPasswordEncoder();
case "ldap":
return new org.springframework.security.crypto.password.LdapShaPasswordEncoder();
case "MD4":
return new org.springframework.security.crypto.password.Md4PasswordEncoder();
case "MD5":
return new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("MD5");
case "noop":
return org.springframework.security.crypto.password.NoOpPasswordEncoder.getInstance();
case "pbkdf2":
return new Pbkdf2PasswordEncoder();
case "scrypt":
return new SCryptPasswordEncoder();
case "SHA-1":
return new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("SHA-1");
case "SHA-256":
return new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("SHA-256");
case "sha256":
return new org.springframework.security.crypto.password.StandardPasswordEncoder();
default:
return NoOpPasswordEncoder.getInstance();
}
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(NoOpPasswordEncoder.getInstance())
.withUser(username).password(password)
.authorities("USER");
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(NoOpPasswordEncoder.getInstance())
.withUser(username).password(password)
.authorities("USER");
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(NoOpPasswordEncoder.getInstance())
.withUser(username).password(password)
.authorities("USER");
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(NoOpPasswordEncoder.getInstance())
.withUser(username).password(password)
.authorities("USER");
}
@Override
public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
security.passwordEncoder(NoOpPasswordEncoder.getInstance());
if (this.properties.getCheckTokenAccess() != null) {
security.checkTokenAccess(this.properties.getCheckTokenAccess());
}
if (this.properties.getTokenKeyAccess() != null) {
security.tokenKeyAccess(this.properties.getTokenKeyAccess());
}
if (this.properties.getRealm() != null) {
security.realm(this.properties.getRealm());
}
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
// @formatter:off
auth.inMemoryAuthentication().passwordEncoder(NoOpPasswordEncoder.getInstance()).withUser("foo")
.password("bar").roles("USER");
// @formatter:on
}
/**
* ProviderManager.
* @return oauth20ClientAuthenticationManager
*/
@Bean(name = "oauth20ClientAuthenticationManager")
public ProviderManager oauth20ClientAuthenticationManager(
ClientDetailsUserDetailsService oauth20ClientDetailsUserService
) {
DaoAuthenticationProvider daoAuthenticationProvider= new DaoAuthenticationProvider();
PasswordEncoder passwordEncoder = NoOpPasswordEncoder.getInstance();
daoAuthenticationProvider.setPasswordEncoder(passwordEncoder);
daoAuthenticationProvider.setUserDetailsService(oauth20ClientDetailsUserService);
ProviderManager clientAuthenticationManager = new ProviderManager(daoAuthenticationProvider);
return clientAuthenticationManager;
}
@Test
public void standaloneIdmEngineWithBasicDataSource() {
contextRunner.run(context -> {
assertThat(context)
.doesNotHaveBean(AppEngine.class)
.doesNotHaveBean(ProcessEngine.class)
.doesNotHaveBean("idmProcessEngineConfigurationConfigurer")
.doesNotHaveBean("idmAppEngineConfigurationConfigurer");
IdmEngine idmEngine = context.getBean(IdmEngine.class);
assertThat(idmEngine).as("Idm engine").isNotNull();
assertAllServicesPresent(context, idmEngine);
assertThat(context).hasSingleBean(CustomUserEngineConfigurerConfiguration.class)
.hasSingleBean(PasswordEncoder.class)
.getBean(CustomUserEngineConfigurerConfiguration.class)
.satisfies(configuration -> {
assertThat(configuration.getInvokedConfigurations())
.containsExactly(
SpringIdmEngineConfiguration.class
);
});
org.flowable.idm.api.PasswordEncoder flowablePasswordEncoder = idmEngine.getIdmEngineConfiguration().getPasswordEncoder();
PasswordEncoder passwordEncoder = context.getBean(PasswordEncoder.class);
assertThat(flowablePasswordEncoder)
.isInstanceOfSatisfying(SpringEncoder.class, springEncoder -> {
assertThat(springEncoder.getSpringEncodingProvider()).isEqualTo(passwordEncoder);
});
assertThat(passwordEncoder).isInstanceOf(NoOpPasswordEncoder.class);
});
}
public void afterPropertiesSet() {
if ("md5".equals(type)) {
this.passwordEncoder = new Md5PasswordEncoder(salt);
} else {
this.passwordEncoder = NoOpPasswordEncoder.getInstance();
}
logger.info("choose {}", passwordEncoder.getClass());
}
@Bean
public PasswordEncoder encoder() {
return NoOpPasswordEncoder.getInstance();
}
@Bean
PasswordEncoder passwordEncoder(){
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder encoder() {
// return new StandardPasswordEncoder("53cr3t");
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder encoder() {
// return new StandardPasswordEncoder("53cr3t");
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder encoder() {
// return new StandardPasswordEncoder("53cr3t");
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder encoder() {
// return new StandardPasswordEncoder("53cr3t");
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder encoder() {
// return new StandardPasswordEncoder("53cr3t");
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder encoder() {
// return new StandardPasswordEncoder("53cr3t");
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
@Bean
PasswordEncoder noOpPasswordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(NoOpPasswordEncoder.getInstance())
.withUser(username).password(password)
.authorities("USER");
}
@Bean
public static NoOpPasswordEncoder passwordEncoder() {
return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
}