Skip to content

Commit 6be24a7

Browse files
committed
Fix: [session-redis] refactoring
- fix version(2.0.0.RELEASE) - fix dependency
1 parent 63d0ed6 commit 6be24a7

File tree

12 files changed

+109
-174
lines changed

12 files changed

+109
-174
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## install redis
2+
3+
```bash
4+
$ docker pull redis
5+
```
6+
7+
## run redis
8+
9+
```bash
10+
$ docker run --name some-redis -d -p 6379:6379 redis
11+
```
Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
buildscript {
22
ext {
3-
springBootVersion = '1.5.2.RELEASE'
3+
springBootVersion = '2.0.0.RELEASE'
44
}
55
repositories {
66
mavenCentral()
@@ -11,15 +11,13 @@ buildscript {
1111
}
1212

1313
apply plugin: 'java'
14-
apply plugin: 'idea'
14+
apply plugin: 'eclipse'
1515
apply plugin: 'org.springframework.boot'
16+
apply plugin: 'io.spring.dependency-management'
1617

17-
jar {
18-
baseName = 'basic'
19-
version = '0.0.1-SNAPSHOT'
20-
}
18+
group = 'com.example'
19+
version = '0.0.1-SNAPSHOT'
2120
sourceCompatibility = 1.8
22-
targetCompatibility = 1.8
2321

2422
repositories {
2523
mavenCentral()
@@ -28,10 +26,9 @@ repositories {
2826
dependencies {
2927
compile('org.springframework.boot:spring-boot-starter-data-jpa')
3028
compile('org.springframework.boot:spring-boot-starter-data-redis')
31-
compile('org.springframework.session:spring-session:1.3.0.RELEASE')
29+
compile('org.springframework.session:spring-session-data-redis')
3230
compile('org.springframework.boot:spring-boot-starter-security')
3331
compile('org.springframework.boot:spring-boot-starter-web')
3432
runtime('com.h2database:h2')
35-
compileOnly('org.projectlombok:lombok')
3633
testCompile('org.springframework.boot:spring-boot-starter-test')
3734
}

SpringBootSecurityAddRedis/src/main/java/com/tistory/heowc/SpringBootSecurityAddRedisApplication.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ public class SpringBootSecurityAddRedisApplication {
1212
public static void main(String[] args) {
1313
SpringApplication.run(SpringBootSecurityAddRedisApplication.class, args);
1414
}
15-
15+
1616
@Bean
17-
public PasswordEncoder passwordEncoder(){
17+
public PasswordEncoder passwordEncoder() {
1818
return new BCryptPasswordEncoder();
1919
}
2020
}

SpringBootSecurityAddRedis/src/main/java/com/tistory/heowc/component/InitRunner.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,30 @@
22

33
import com.tistory.heowc.domain.Member;
44
import com.tistory.heowc.repository.MemberRepository;
5-
import lombok.RequiredArgsConstructor;
6-
import org.springframework.boot.CommandLineRunner;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.boot.ApplicationArguments;
7+
import org.springframework.boot.ApplicationRunner;
78
import org.springframework.security.crypto.password.PasswordEncoder;
89
import org.springframework.stereotype.Component;
910
import org.springframework.transaction.annotation.Transactional;
1011

1112
@Component
12-
@RequiredArgsConstructor
13-
public class InitRunner implements CommandLineRunner {
13+
public class InitRunner implements ApplicationRunner {
14+
15+
@Autowired
16+
private MemberRepository repository;
17+
18+
@Autowired
19+
private PasswordEncoder passwordEncoder;
1420

15-
private final MemberRepository repository;
16-
private final PasswordEncoder passwordEncoder;
17-
18-
@Transactional
1921
@Override
20-
public void run(String... args) throws Exception {
22+
public void run(ApplicationArguments args) {
2123
repository.save(new Member("wonchul", passwordEncoder.encode("1234")));
2224
repository.save(new Member("naeun", passwordEncoder.encode("1234")));
2325
repository.save(new Member("tistory", passwordEncoder.encode("1234")));
2426
repository.save(new Member("security", passwordEncoder.encode("1234")));
25-
26-
for( Member member : repository.findAll()) {
27+
28+
for (Member member : repository.findAll()) {
2729
System.out.println(member.toString());
2830
}
2931
}

SpringBootSecurityAddRedis/src/main/java/com/tistory/heowc/component/SecurityHandler.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

SpringBootSecurityAddRedis/src/main/java/com/tistory/heowc/component/UserDetailsImpl.java

Lines changed: 5 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,54 +2,18 @@
22

33
import com.tistory.heowc.domain.Member;
44
import org.springframework.security.core.GrantedAuthority;
5-
import org.springframework.security.core.authority.SimpleGrantedAuthority;
5+
import org.springframework.security.core.authority.AuthorityUtils;
66
import org.springframework.security.core.userdetails.User;
77

8-
import java.util.ArrayList;
98
import java.util.Collection;
10-
import java.util.List;
119

1210
public class UserDetailsImpl extends User {
1311

14-
private Member member;
15-
16-
private static final boolean isEnabled = true;
17-
private static final boolean isAccountNonExpired = true;
18-
private static final boolean isAccountNonLocked = true;
19-
private static final boolean isCredentialsNonExpired= true;
20-
21-
public UserDetailsImpl(Member member){
22-
super(member.getId(), member.getPassoword(), authorities());
23-
this.member = member;
24-
}
25-
26-
private static Collection<? extends GrantedAuthority> authorities() {
27-
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
28-
authorities.add(new SimpleGrantedAuthority("USER"));
29-
return authorities;
30-
}
31-
32-
public Member getMember() {
33-
return member;
34-
}
35-
36-
@Override
37-
public boolean isEnabled() {
38-
return isEnabled;
12+
public UserDetailsImpl(Member member) {
13+
super(member.getId(), member.getPassword(), authorities());
3914
}
4015

41-
@Override
42-
public boolean isAccountNonExpired() {
43-
return isAccountNonExpired;
44-
}
45-
46-
@Override
47-
public boolean isAccountNonLocked() {
48-
return isAccountNonLocked;
49-
}
50-
51-
@Override
52-
public boolean isCredentialsNonExpired() {
53-
return isCredentialsNonExpired;
16+
private static Collection<? extends GrantedAuthority> authorities() {
17+
return AuthorityUtils.createAuthorityList("USER");
5418
}
5519
}
Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,45 @@
11
package com.tistory.heowc.config;
22

3-
import com.tistory.heowc.component.SecurityHandler;
4-
import lombok.RequiredArgsConstructor;
3+
import com.tistory.heowc.service.UserDetailsServiceImpl;
54
import org.springframework.beans.factory.annotation.Autowired;
65
import org.springframework.context.annotation.Configuration;
76
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
87
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
98
import org.springframework.security.config.annotation.web.builders.WebSecurity;
10-
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
119
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
12-
import org.springframework.security.core.userdetails.UserDetailsService;
1310
import org.springframework.security.crypto.password.PasswordEncoder;
1411

1512
@Configuration
16-
@EnableWebSecurity
17-
@RequiredArgsConstructor
1813
public class SecurityConfig extends WebSecurityConfigurerAdapter {
1914

20-
private final UserDetailsService userDetailsService;
21-
private final PasswordEncoder passwordEncoder;
22-
private final SecurityHandler securityHandler;
23-
15+
@Autowired
16+
private UserDetailsServiceImpl userDetailsService;
17+
18+
@Autowired
19+
private PasswordEncoder passwordEncoder;
20+
2421
@Override
25-
public void configure(WebSecurity web) throws Exception {
22+
public void configure(WebSecurity web) {
2623
web.ignoring().antMatchers("/resources/**");
2724
}
28-
29-
// @Bean
30-
// public HttpSessionStrategy httpSessionStrategy() {
31-
// return new HeaderHttpSessionStrategy();
32-
// }
33-
25+
26+
@Override
27+
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
28+
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder);
29+
}
30+
3431
@Override
3532
protected void configure(HttpSecurity http) throws Exception {
3633
http
37-
.authorizeRequests()
34+
.authorizeRequests()
3835
.anyRequest().authenticated()
39-
.and()
40-
.formLogin()
36+
.and()
37+
.formLogin()
4138
.usernameParameter("id")
4239
.passwordParameter("pw")
43-
// .defaultSuccessUrl("/user", true)
44-
// .failureForwardUrl("/")
45-
.successHandler(securityHandler)
46-
.failureHandler(securityHandler)
40+
.defaultSuccessUrl("/user", true)
4741
.permitAll()
48-
.and()
49-
.httpBasic()
50-
.and()
42+
.and()
5143
.csrf().disable();
5244
}
53-
54-
@Autowired
55-
public void configureGlobal(AuthenticationManagerBuilder auth)
56-
throws Exception {
57-
auth.userDetailsService(userDetailsService).passwordEncoder(
58-
passwordEncoder);
59-
}
6045
}
Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,45 @@
11
package com.tistory.heowc.domain;
22

3-
import java.io.Serializable;
43

54
import javax.persistence.Entity;
65
import javax.persistence.Id;
76

8-
import lombok.AllArgsConstructor;
9-
import lombok.Data;
10-
11-
12-
@Data
137
@Entity
14-
@SuppressWarnings("serial")
15-
@AllArgsConstructor
16-
public class Member implements Serializable {
8+
public class Member {
179

1810
@Id
19-
String id;
11+
private String id;
2012

21-
String passoword;
13+
private String password;
2214

23-
protected Member(){}
15+
protected Member() { }
16+
17+
public Member(String id, String password) {
18+
this.id = id;
19+
this.password = password;
20+
}
21+
22+
public String getId() {
23+
return id;
24+
}
25+
26+
public void setId(String id) {
27+
this.id = id;
28+
}
29+
30+
public String getPassword() {
31+
return password;
32+
}
33+
34+
public void setPassword(String password) {
35+
this.password = password;
36+
}
37+
38+
@Override
39+
public String toString() {
40+
return "Member{" +
41+
"id='" + id + '\'' +
42+
", password='" + password + '\'' +
43+
'}';
44+
}
2445
}
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
package com.tistory.heowc.repository;
22

3-
import org.springframework.data.jpa.repository.JpaRepository;
4-
import org.springframework.stereotype.Repository;
5-
63
import com.tistory.heowc.domain.Member;
4+
import org.springframework.data.jpa.repository.JpaRepository;
75

8-
@Repository
96
public interface MemberRepository extends JpaRepository<Member, String> {
107

11-
Member findById(String id);
128
}

SpringBootSecurityAddRedis/src/main/java/com/tistory/heowc/service/UserDetailsServiceImpl.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,23 @@
33
import com.tistory.heowc.component.UserDetailsImpl;
44
import com.tistory.heowc.domain.Member;
55
import com.tistory.heowc.repository.MemberRepository;
6-
import lombok.RequiredArgsConstructor;
6+
import org.springframework.beans.factory.annotation.Autowired;
77
import org.springframework.security.core.userdetails.UserDetails;
88
import org.springframework.security.core.userdetails.UserDetailsService;
99
import org.springframework.security.core.userdetails.UsernameNotFoundException;
1010
import org.springframework.stereotype.Service;
1111

1212
@Service
13-
@RequiredArgsConstructor
1413
public class UserDetailsServiceImpl implements UserDetailsService {
1514

16-
private final MemberRepository repository;
17-
15+
@Autowired
16+
private MemberRepository repository;
17+
1818
@Override
1919
public UserDetails loadUserByUsername(String id) {
20-
Member member = repository.findById(id);
21-
System.out.println(member);
22-
if(member == null){
23-
throw new UsernameNotFoundException(id);
24-
}
25-
20+
Member member = repository.findById(id)
21+
.orElseThrow(() -> new UsernameNotFoundException(id));
22+
2623
return new UserDetailsImpl(member);
2724
}
2825
}

0 commit comments

Comments
 (0)