Skip to content

Commit 720dbc4

Browse files
committed
add security
1 parent d482a44 commit 720dbc4

File tree

25 files changed

+522
-45
lines changed

25 files changed

+522
-45
lines changed

spring-security/001-authentication-mem/pom.xml renamed to spring-security/001-authentication-mem-config/pom.xml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,16 @@
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

12-
<artifactId>001-authentication-mem</artifactId>
12+
<artifactId>001-authentication-mem-config</artifactId>
1313

1414
<dependencies>
1515
<dependency>
1616
<groupId>org.springframework.boot</groupId>
17-
<artifactId>spring-boot-starter-web</artifactId>
17+
<artifactId>spring-boot-starter-security</artifactId>
1818
</dependency>
1919
<dependency>
2020
<groupId>org.springframework.boot</groupId>
21-
<artifactId>spring-boot-starter-security</artifactId>
21+
<artifactId>spring-boot-starter-web</artifactId>
2222
</dependency>
2323
</dependencies>
24-
2524
</project>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.git.hui.boot.security;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
/**
7+
* Created by @author yihui in 10:59 19/12/24.
8+
*/
9+
@SpringBootApplication
10+
public class Application {
11+
12+
public static void main(String[] args) {
13+
SpringApplication.run(Application.class, args);
14+
}
15+
16+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.git.hui.boot.security;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
6+
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
7+
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
8+
import org.springframework.security.core.userdetails.User;
9+
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
10+
import org.springframework.security.crypto.password.PasswordEncoder;
11+
12+
/**
13+
* Created by @author yihui in 10:49 19/12/24.
14+
*/
15+
@Configuration
16+
@EnableWebSecurity
17+
public class SecurityAdapterConfig extends WebSecurityConfigurerAdapter {
18+
19+
@Bean
20+
public PasswordEncoder passwordEncoder() {
21+
return new BCryptPasswordEncoder();
22+
}
23+
24+
@Override
25+
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
26+
// 测试时,可以直接用下面的方式
27+
// User.UserBuilder builder = User.withDefaultPasswordEncoder();
28+
User.UserBuilder builder = User.builder().passwordEncoder(passwordEncoder()::encode);
29+
auth.inMemoryAuthentication().withUser(builder.username("hui1").password("123456").roles("guest").build());
30+
auth.inMemoryAuthentication().withUser(builder.username("hui2").password("123456").roles("guest").build());
31+
}
32+
33+
34+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.git.hui.boot.security.rest;
2+
3+
import org.springframework.security.core.context.SecurityContextHolder;
4+
import org.springframework.security.core.userdetails.UserDetails;
5+
import org.springframework.web.bind.annotation.GetMapping;
6+
import org.springframework.web.bind.annotation.RestController;
7+
8+
/**
9+
* Created by @author yihui in 20:30 19/12/22.
10+
*/
11+
@RestController
12+
public class IndexRest {
13+
public String getUser() {
14+
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
15+
16+
String userName;
17+
if (principal instanceof UserDetails) {
18+
userName = ((UserDetails) principal).getUsername();
19+
} else {
20+
userName = principal.toString();
21+
}
22+
return userName;
23+
}
24+
25+
@GetMapping(path = {"/", "/index"})
26+
public String index() {
27+
return "hello this is index! welcome " + getUser();
28+
}
29+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>spring-security</artifactId>
7+
<groupId>com.git.hui.boot</groupId>
8+
<version>0.0.1-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>001-authentication-mem-userdetail</artifactId>
13+
14+
<dependencies>
15+
<dependency>
16+
<groupId>org.springframework.boot</groupId>
17+
<artifactId>spring-boot-starter-web</artifactId>
18+
</dependency>
19+
<dependency>
20+
<groupId>org.springframework.boot</groupId>
21+
<artifactId>spring-boot-starter-security</artifactId>
22+
</dependency>
23+
</dependencies>
24+
25+
</project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.git.hui.boot.security;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
/**
7+
* Created by @author yihui in 11:12 19/12/24.
8+
*/
9+
@SpringBootApplication
10+
public class Application {
11+
public static void main(String[] args) {
12+
SpringApplication.run(Application.class, args);
13+
}
14+
}

spring-security/001-authentication-mem/src/main/java/com/git/hui/boot/security/SecurityAutoConfig.java renamed to spring-security/001-authentication-mem-userdetail/src/main/java/com/git/hui/boot/security/SecurityAutoConfig.java

File renamed without changes.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.git.hui.boot.security.rest;
2+
3+
import org.springframework.security.core.context.SecurityContextHolder;
4+
import org.springframework.security.core.userdetails.UserDetails;
5+
import org.springframework.web.bind.annotation.GetMapping;
6+
import org.springframework.web.bind.annotation.RestController;
7+
8+
/**
9+
* Created by @author yihui in 20:30 19/12/22.
10+
*/
11+
@RestController
12+
public class IndexRest {
13+
14+
public String getUser() {
15+
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
16+
17+
String userName;
18+
if (principal instanceof UserDetails) {
19+
userName = ((UserDetails) principal).getUsername();
20+
} else {
21+
userName = principal.toString();
22+
}
23+
return userName;
24+
}
25+
26+
/**
27+
* @return
28+
*/
29+
@GetMapping(path = {"/"})
30+
public String index() {
31+
return "hello this is index! welcome " + getUser();
32+
}
33+
}

spring-security/001-authentication-mem/src/main/java/com/git/hui/boot/security/SecurityAdapterConfig.java

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>spring-security</artifactId>
7+
<groupId>com.git.hui.boot</groupId>
8+
<version>0.0.1-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>002-authentication-db</artifactId>
13+
14+
<dependencies>
15+
<dependency>
16+
<groupId>org.springframework.boot</groupId>
17+
<artifactId>spring-boot-starter-web</artifactId>
18+
</dependency>
19+
<dependency>
20+
<groupId>org.springframework.boot</groupId>
21+
<artifactId>spring-boot-starter-security</artifactId>
22+
</dependency>
23+
24+
<dependency>
25+
<groupId>org.springframework.boot</groupId>
26+
<artifactId>spring-boot-starter-data-jpa</artifactId>
27+
</dependency>
28+
<dependency>
29+
<groupId>com.h2database</groupId>
30+
<artifactId>h2</artifactId>
31+
</dependency>
32+
<dependency>
33+
<groupId>org.springframework.boot</groupId>
34+
<artifactId>spring-boot-devtools</artifactId>
35+
</dependency>
36+
</dependencies>
37+
38+
</project>

0 commit comments

Comments
 (0)