Skip to content

Commit 70241e9

Browse files
committed
SecurityLoginHandler add UserDetails
1 parent 5cf9a37 commit 70241e9

File tree

8 files changed

+22
-10
lines changed

8 files changed

+22
-10
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>com.codingapi.springboot</groupId>
1414
<artifactId>springboot-parent</artifactId>
15-
<version>2.9.3.1</version>
15+
<version>2.9.4</version>
1616

1717
<url>https://github.com/codingapi/springboot-framewrok</url>
1818
<name>springboot-parent</name>

springboot-starter-data-fast/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>springboot-parent</artifactId>
77
<groupId>com.codingapi.springboot</groupId>
8-
<version>2.9.3.1</version>
8+
<version>2.9.4</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

springboot-starter-flow/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>springboot-parent</artifactId>
88
<groupId>com.codingapi.springboot</groupId>
9-
<version>2.9.3.1</version>
9+
<version>2.9.4</version>
1010
</parent>
1111

1212
<name>springboot-starter-flow</name>

springboot-starter-security/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>springboot-parent</artifactId>
88
<groupId>com.codingapi.springboot</groupId>
9-
<version>2.9.3.1</version>
9+
<version>2.9.4</version>
1010
</parent>
1111

1212
<artifactId>springboot-starter-security</artifactId>

springboot-starter-security/src/main/java/com/codingapi/springboot/security/AutoConfiguration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void preHandle(HttpServletRequest request, HttpServletResponse response,
7878
}
7979

8080
@Override
81-
public LoginResponse postHandle(HttpServletRequest request, HttpServletResponse response, LoginRequest loginRequest, Token token) {
81+
public LoginResponse postHandle(HttpServletRequest request, HttpServletResponse response, LoginRequest loginRequest,UserDetails userDetails, Token token) {
8282
LoginResponse loginResponse = new LoginResponse();
8383
loginResponse.setUsername(token.getUsername());
8484
loginResponse.setToken(token.getToken());

springboot-starter-security/src/main/java/com/codingapi/springboot/security/filter/MyLoginFilter.java

+14-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import org.springframework.security.core.Authentication;
1919
import org.springframework.security.core.AuthenticationException;
2020
import org.springframework.security.core.GrantedAuthority;
21-
import org.springframework.security.core.userdetails.User;
21+
import org.springframework.security.core.userdetails.UserDetails;
2222
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
2323
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
2424

@@ -69,16 +69,21 @@ public Authentication attemptAuthentication(HttpServletRequest request, HttpServ
6969
@Override
7070
protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException {
7171
log.debug("login success authentication ~");
72-
User user = (User) authResult.getPrincipal();
72+
UserDetails user = (UserDetails) authResult.getPrincipal();
7373
LoginRequest loginRequest = LoginRequestContext.getInstance().get();
7474

7575
Token token = tokenGateway.create(user.getUsername(), loginRequest.getPassword(),
7676
user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList()),
7777
TokenContext.getExtra());
7878

79-
LoginResponse loginResponse = loginHandler.postHandle(request, response, loginRequest, token);
79+
LoginResponse loginResponse = loginHandler.postHandle(request, response, loginRequest, user, token);
8080

8181
String content = JSONObject.toJSONString(SingleResponse.of(loginResponse));
82+
83+
// 设置响应的 Content-Type 为 JSON,并指定字符编码为 UTF-8
84+
response.setContentType("application/json;charset=UTF-8");
85+
response.setCharacterEncoding("UTF-8");
86+
8287
IOUtils.write(content, response.getOutputStream(), StandardCharsets.UTF_8);
8388

8489
LoginRequestContext.getInstance().clean();
@@ -89,7 +94,13 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR
8994
protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) throws IOException, ServletException {
9095
log.debug("login fail authentication ~");
9196
String content = JSONObject.toJSONString(Response.buildFailure("login.error", failed.getMessage()));
97+
98+
// 设置响应的 Content-Type 为 JSON,并指定字符编码为 UTF-8
99+
response.setContentType("application/json;charset=UTF-8");
100+
response.setCharacterEncoding("UTF-8");
101+
92102
IOUtils.write(content, response.getOutputStream(), StandardCharsets.UTF_8);
103+
93104
LoginRequestContext.getInstance().clean();
94105
}
95106
}

springboot-starter-security/src/main/java/com/codingapi/springboot/security/filter/SecurityLoginHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.codingapi.springboot.security.dto.request.LoginRequest;
44
import com.codingapi.springboot.security.dto.response.LoginResponse;
55
import com.codingapi.springboot.security.gateway.Token;
6+
import org.springframework.security.core.userdetails.UserDetails;
67

78
import javax.servlet.http.HttpServletRequest;
89
import javax.servlet.http.HttpServletResponse;
@@ -12,5 +13,5 @@ public interface SecurityLoginHandler {
1213

1314
void preHandle(HttpServletRequest request, HttpServletResponse response, LoginRequest loginRequest) throws Exception;
1415

15-
LoginResponse postHandle(HttpServletRequest request, HttpServletResponse response, LoginRequest loginRequest, Token token);
16+
LoginResponse postHandle(HttpServletRequest request, HttpServletResponse response, LoginRequest loginRequest, UserDetails userDetails, Token token);
1617
}

springboot-starter/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.codingapi.springboot</groupId>
77
<artifactId>springboot-parent</artifactId>
8-
<version>2.9.3.1</version>
8+
<version>2.9.4</version>
99
</parent>
1010
<artifactId>springboot-starter</artifactId>
1111

0 commit comments

Comments
 (0)