|
@@ -1,7 +1,10 @@
|
|
|
package com.lc.admin.config;
|
|
|
|
|
|
import com.cl.mbg.model.TUser;
|
|
|
+import com.lc.pojo.LoginUser;
|
|
|
+import com.lc.pojo.PermissionPojo;
|
|
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
|
|
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
|
import org.springframework.security.core.context.SecurityContext;
|
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -13,6 +16,8 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
@Component
|
|
@@ -32,11 +37,18 @@ public class SecurityFilter extends OncePerRequestFilter {
|
|
|
@Override
|
|
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
|
|
HttpSession session = request.getSession(true);
|
|
|
- TUser user = (TUser) session.getAttribute("user");
|
|
|
+ LoginUser user = (LoginUser) session.getAttribute("user");
|
|
|
SecurityContext context = SecurityContextHolder.getContext();
|
|
|
if (Objects.nonNull(user)) {
|
|
|
+ List<PermissionPojo> permission = user.getPermission();
|
|
|
+ ArrayList<SimpleGrantedAuthority> objects = new ArrayList<>();
|
|
|
+ for ( PermissionPojo userPermission: permission ) {
|
|
|
+ SimpleGrantedAuthority authority = new SimpleGrantedAuthority(userPermission.getKeyword());
|
|
|
+ objects.add( authority );
|
|
|
+ }
|
|
|
UsernamePasswordAuthenticationToken AuthenticationToken =
|
|
|
- new UsernamePasswordAuthenticationToken( user.getUsername(), null, null );
|
|
|
+ new UsernamePasswordAuthenticationToken( user.getUser().getUsername(),
|
|
|
+ null, objects );
|
|
|
context.setAuthentication( AuthenticationToken );
|
|
|
} else {
|
|
|
SecurityContextHolder.clearContext();
|