Skip to content

Commit e09db72

Browse files
committed
Dtos have been defined.
1 parent 2c74f2a commit e09db72

File tree

207 files changed

+32059
-42
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

207 files changed

+32059
-42
lines changed

Readme.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,4 +175,35 @@
175175
- Yup
176176
- validationSchema
177177
- erros
178-
- handleBlur
178+
- handleBlur
179+
180+
# 13. Gün
181+
- Authentication and Authorization
182+
- WebSecurityConfigurerAdapter
183+
- UserDetails
184+
- UserDetailsService
185+
- InMemoryUserDetailsManager
186+
- PasswordEncoder
187+
- httpBasic
188+
- Guava Utility Library
189+
- CSRF
190+
- Basic Authentication
191+
- Permission-based Authentication
192+
- PreAuthorization
193+
- EnableGlobalMethodSecurity
194+
- antMatchers
195+
- UserDetails Implementation (ApplicationUser)
196+
- UserDetailsService Implementation (ApplicationUserService)
197+
- ApplicationDao
198+
- ApplicationDao Implementation (FakeApplicationUserDao)
199+
- ApplicationDao Implementation (UserServiceImp)
200+
201+
# 14. Gün
202+
- JWT
203+
- JwtConfig
204+
- JwtSecretKey
205+
- JsonTokenProvider
206+
- JsonAuthenticationFilter
207+
- JwtAuthenticationEntryPoint
208+
- sessionCreationPolicy
209+
- JwtAuthenticationFilter

day-14/Readme.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# 14. Gün
2+
- JWT
3+
- JwtConfig
4+
- JwtSecretKey
5+
- JsonTokenProvider
6+
- JsonAuthenticationFilter
7+
- JwtAuthenticationEntryPoint
8+
- sessionCreationPolicy
9+
- JwtAuthenticationFilter

day-14/api/Readme.md

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,3 @@
1-
# 13. Gün
2-
- Authentication and Authorization
3-
- WebSecurityConfigurerAdapter
4-
- UserDetails
5-
- UserDetailsService
6-
- InMemoryUserDetailsManager
7-
- PasswordEncoder
8-
- httpBasic
9-
- Guava Utility Library
10-
- CSRF
11-
- Basic Authentication
12-
- Permission-based Authentication
13-
- PreAuthorization
14-
- EnableGlobalMethodSecurity
15-
- antMatchers
16-
- UserDetails Implementation (ApplicationUser)
17-
- UserDetailsService Implementation (ApplicationUserService)
18-
- ApplicationDao
19-
- ApplicationDao Implementation (FakeApplicationUserDao)
20-
- ApplicationDao Implementation (UserServiceImp)
21-
22-
![BasicAuthentication](http://www.zafercomert.com/medya/java/SpringSecurityBasicAuth.svg)
1+
# 14. Gün
2+
- Json Web Token
3+
- STATELESS

day-14/api/src/main/java/com/bookstore/api/controllers/AuthController.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
import com.bookstore.api.entities.RefreshToken;
2222
import com.bookstore.api.entities.User;
23-
import com.bookstore.api.entities.dto.AuthResponse;
24-
import com.bookstore.api.entities.dto.RefreshRequest;
23+
import com.bookstore.api.entities.dto.AuthDto;
24+
import com.bookstore.api.entities.dto.RefreshDto;
2525
import com.bookstore.api.entities.dto.UserRequest;
2626
import com.bookstore.api.entities.dto.UserRequestForRegister;
2727
import com.bookstore.api.jwt.JwtTokenProvider;
@@ -50,7 +50,7 @@ public AuthController(AuthenticationManager authenticationManager, JwtTokenProvi
5050
}
5151

5252
@PostMapping("/login")
53-
public AuthResponse login(@RequestBody UserRequest loginRequest) {
53+
public AuthDto login(@RequestBody UserRequest loginRequest) {
5454
UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(
5555
loginRequest.getUserName(),
5656
loginRequest.getPassword());
@@ -63,7 +63,7 @@ public AuthResponse login(@RequestBody UserRequest loginRequest) {
6363

6464
User user = userService.getOneUserByUserName(loginRequest.getUserName());
6565

66-
AuthResponse authResponse = new AuthResponse();
66+
AuthDto authResponse = new AuthDto();
6767
authResponse.setAccessToken("Bearer " + jwtToken);
6868
authResponse.setRefreshToken(refreshTokenService.createRefreshToken(user));
6969
authResponse.setUserId(user.getId());
@@ -75,9 +75,9 @@ public AuthResponse login(@RequestBody UserRequest loginRequest) {
7575
}
7676

7777
@PostMapping("/register")
78-
public ResponseEntity<AuthResponse> register(@RequestBody UserRequestForRegister registerRequest) {
78+
public ResponseEntity<AuthDto> register(@RequestBody UserRequestForRegister registerRequest) {
7979

80-
AuthResponse authResponse = new AuthResponse();
80+
AuthDto authResponse = new AuthDto();
8181

8282
// User exists?
8383
if (userService.getOneUserByUserName(registerRequest.getUserName()) != null) {
@@ -92,8 +92,6 @@ public ResponseEntity<AuthResponse> register(@RequestBody UserRequestForRegister
9292
user.setUserName(registerRequest.getUserName());
9393
user.setPassword(registerRequest.getPassword());
9494

95-
96-
9795
userService.saveOneUser(user);
9896

9997
// Adding role -> User role is given by default
@@ -120,8 +118,8 @@ public ResponseEntity<AuthResponse> register(@RequestBody UserRequestForRegister
120118
}
121119

122120
@PostMapping("/refresh")
123-
public ResponseEntity<AuthResponse> refresh(@RequestBody RefreshRequest refreshRequest) {
124-
AuthResponse authResponse = new AuthResponse();
121+
public ResponseEntity<AuthDto> refresh(@RequestBody RefreshDto refreshRequest) {
122+
AuthDto authResponse = new AuthDto();
125123

126124
RefreshToken token = refreshTokenService.getByUser(refreshRequest.getUserId());
127125

day-14/api/src/main/java/com/bookstore/api/entities/dto/AuthResponse.java renamed to day-14/api/src/main/java/com/bookstore/api/entities/dto/AuthDto.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import lombok.Data;
44

55
@Data
6-
public class AuthResponse {
7-
private String message;
6+
public class AuthDto {
87

8+
private String message;
99
private int userId;
1010
private String userName;
1111

day-14/api/src/main/java/com/bookstore/api/entities/dto/RefreshRequest.java renamed to day-14/api/src/main/java/com/bookstore/api/entities/dto/RefreshDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import lombok.Data;
44

55
@Data
6-
public class RefreshRequest {
6+
public class RefreshDto {
77
private int userId;
88
private String refreshToken;
99
}

day-14/api/src/main/java/com/bookstore/api/jwt/JwtTokenProvider.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,26 @@
88
import org.springframework.security.core.Authentication;
99
import org.springframework.stereotype.Component;
1010

11+
import com.bookstore.api.entities.User;
12+
import com.bookstore.api.exceptions.notFoundExceptions.UserNotFoundException;
1113
import com.bookstore.api.security.ApplicationUser;
14+
import com.bookstore.api.services.Abstract.UserService;
1215

1316
import io.jsonwebtoken.Claims;
1417
import io.jsonwebtoken.ExpiredJwtException;
1518
import io.jsonwebtoken.Jwts;
1619
import io.jsonwebtoken.MalformedJwtException;
1720
import io.jsonwebtoken.SignatureException;
1821
import io.jsonwebtoken.UnsupportedJwtException;
22+
import lombok.RequiredArgsConstructor;
1923

2024
@Component
25+
@RequiredArgsConstructor
2126
public class JwtTokenProvider {
2227

2328
private final JwtConfig jwtConfig;
2429
private final SecretKey secretKey;
25-
26-
public JwtTokenProvider(JwtConfig jwtConfig, SecretKey secretKey) {
27-
this.jwtConfig = jwtConfig;
28-
this.secretKey = secretKey;
29-
System.out.println(jwtConfig.getExpiresIn());
30-
}
30+
private final UserService userService;
3131

3232
public String generateJwtToken(Authentication auth) {
3333

@@ -44,9 +44,14 @@ public String generateJwtToken(Authentication auth) {
4444

4545
public String generateJwtTokenByUserId(int userId) {
4646

47+
User user = userService.getOneUser(userId).getData();
48+
ApplicationUser userDetails = userService.selectApplicationUserByUsername(user.getUserName())
49+
.orElseThrow(() -> new UserNotFoundException(userId));
50+
4751
Date expireDate = new Date(new Date().getTime() + jwtConfig.getExpiresIn());
4852
return Jwts.builder()
4953
.setSubject(Integer.toString(userId))
54+
.claim("authorities", userDetails.getAuthorities())
5055
.setIssuedAt(new Date())
5156
.setExpiration(expireDate)
5257
.signWith(secretKey)
@@ -55,8 +60,13 @@ public String generateJwtTokenByUserId(int userId) {
5560

5661
public String generateJwtTokenByUserName(String username) {
5762
Date expireDate = new Date(new Date().getTime() + jwtConfig.getExpiresIn());
63+
// Yetkileri de ekle.
64+
ApplicationUser userDetails = userService.selectApplicationUserByUsername(username)
65+
.orElseThrow(() -> new RuntimeException(String.format("%s could not found.", username)));
66+
5867
return Jwts.builder()
5968
.setSubject(username)
69+
.claim("authorities", userDetails.getAuthorities())
6070
.setIssuedAt(new Date())
6171
.setExpiration(expireDate)
6272
.signWith(secretKey)

day-14/bs-store/.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
REACT_APP_BASE_ENDPOINT = http://localhost:8080/api/v1
2+

day-14/bs-store/.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.js
7+
8+
# testing
9+
/coverage
10+
11+
# production
12+
/build
13+
14+
# misc
15+
.DS_Store
16+
.env.local
17+
.env.development.local
18+
.env.test.local
19+
.env.production.local
20+
21+
22+
npm-debug.log*
23+
yarn-debug.log*
24+
yarn-error.log*
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"editor.fontSize": 22
3+
}

0 commit comments

Comments
 (0)