Compare commits

...

3 Commits

Author SHA1 Message Date
2c0273dd76 update oidc config and outputs user info 2022-03-06 11:09:24 +08:00
6880dd513e add password encode tests 2022-01-05 00:03:17 +08:00
f76ffb4c02 add password encode tests 2022-01-05 00:03:10 +08:00
6 changed files with 56 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
{ {
"java": "15", "java": "1.8",
"builder": { "builder": {
"name": "maven", "name": "maven",
"version": "3.8.4" "version": "3.8.4"

21
pom.xml
View File

@@ -16,7 +16,7 @@
</parent> </parent>
<properties> <properties>
<java.version>15</java.version> <java.version>8</java.version>
</properties> </properties>
<dependencies> <dependencies>
@@ -36,9 +36,26 @@
<groupId>org.springframework.security</groupId> <groupId>org.springframework.security</groupId>
<artifactId>spring-security-openid</artifactId> <artifactId>spring-security-openid</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
</dependency>
</dependencies> </dependencies>
<repositories>
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>

View File

@@ -3,26 +3,21 @@ package me.hatter.sample;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.oauth2.core.oidc.user.OidcUser; import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
public class SampleController { public class SampleController {
@GetMapping("/oidc-principal") @GetMapping("/oauth2-principal")
public OidcUser getOidcUserPrincipal( public OAuth2User getOidcUserPrincipal(
@AuthenticationPrincipal OidcUser principal) { @AuthenticationPrincipal OAuth2User principal) {
return principal; return principal;
} }
@GetMapping("/oidc-principal2") @GetMapping("/oauth2-principal2")
public Object getOidcUserPrincipal2() { public Object getOidcUserPrincipal2() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication.getPrincipal() instanceof OidcUser) {
OidcUser principal = ((OidcUser) authentication.getPrincipal());
return principal;
} else {
return authentication.getPrincipal(); return authentication.getPrincipal();
} }
}
} }

View File

@@ -8,12 +8,9 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
public class SecurityConfig extends WebSecurityConfigurerAdapter { public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
http// only disable these during testing or for non-browser clients http.authorizeRequests()
// .cors().disable()
// .csrf().disable()
.authorizeRequests()
.anyRequest().authenticated() .anyRequest().authenticated()
.and() .and()
.oauth2Login().loginPage("/oauth2/authorization/google"); .oauth2Login();
} }
} }

View File

@@ -0,0 +1,25 @@
package me.hatter.sample.tests;
import org.springframework.security.crypto.argon2.Argon2PasswordEncoder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.LdapShaPasswordEncoder;
import org.springframework.security.crypto.password.Md4PasswordEncoder;
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
public class TestPasswordEncoder {
public static void main(String[] args) {
Argon2PasswordEncoder argon2PasswordEncoder = new Argon2PasswordEncoder();
System.out.println(argon2PasswordEncoder.encode("hello"));
SCryptPasswordEncoder sCryptPasswordEncoder = new SCryptPasswordEncoder();
System.out.println(sCryptPasswordEncoder.encode("hello"));
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
System.out.println(bCryptPasswordEncoder.encode("hello"));
Pbkdf2PasswordEncoder pbkdf2PasswordEncoder = new Pbkdf2PasswordEncoder();
System.out.println(pbkdf2PasswordEncoder.encode("hello"));
LdapShaPasswordEncoder ldapShaPasswordEncoder = new LdapShaPasswordEncoder();
System.out.println(ldapShaPasswordEncoder.encode("hello"));
Md4PasswordEncoder md4PasswordEncoder = new Md4PasswordEncoder();
System.out.println(md4PasswordEncoder.encode("hello"));
}
}

View File

@@ -4,5 +4,6 @@ application.title=This is SpringBoot sample application
spring.mvc.throw-exception-if-no-handler-found=true spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false spring.resources.add-mappings=false
spring.security.oauth2.client.registration.google.client-id=test spring.security.oauth2.client.provider.login.issuer-uri=<issuer>
spring.security.oauth2.client.registration.google.client-secret=test spring.security.oauth2.client.registration.login.client-id=<client-id>
spring.security.oauth2.client.registration.login.client-secret=<client-secret>