浏览代码

修改网关层

weiximei 6 年前
父节点
当前提交
d1c4dba9de
共有 16 个文件被更改,包括 42 次插入193 次删除
  1. 1
    1
      CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/BillController.java
  2. 1
    1
      CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/MessageController.java
  3. 1
    1
      CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/SocialController.java
  4. 2
    1
      CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/TicketController.java
  5. 7
    4
      CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/UserController.java
  6. 4
    2
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserServiceImpl.java
  7. 7
    2
      CODE/smart-community/community-common/src/main/java/com/community/commom/session/UserElement.java
  8. 二进制
      CODE/smart-community/community-common/target/classes/com/community/commom/session/UserElement.class
  9. 0
    33
      CODE/smart-community/zuul/src/main/java/com/community/huiju/config/entity/UserElement.java
  10. 1
    1
      CODE/smart-community/zuul/src/main/java/com/community/huiju/constant/Status.java
  11. 4
    2
      CODE/smart-community/zuul/src/main/java/com/community/huiju/security/RestAuthenticationEntryPoint.java
  12. 0
    30
      CODE/smart-community/zuul/src/main/java/com/community/huiju/security/RestPreAuthenticateManager.java
  13. 8
    12
      CODE/smart-community/zuul/src/main/java/com/community/huiju/security/RestPreAuthenticateProvider.java
  14. 4
    1
      CODE/smart-community/zuul/src/main/java/com/community/huiju/security/RestPreAuthenticatedProcessingFilter.java
  15. 2
    14
      CODE/smart-community/zuul/src/main/java/com/community/huiju/security/WisdomSecurityConfig.java
  16. 0
    88
      CODE/smart-community/zuul/src/main/java/com/community/huiju/security/dome/TokenAuthrentication.java

+ 1
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/BillController.java 查看文件

@@ -2,7 +2,7 @@ package com.community.huiju.controller;
2 2
 
3 3
 import com.community.commom.constant.Constant;
4 4
 import com.community.commom.mode.ResponseBean;
5
-import com.community.huiju.config.entity.UserElement;
5
+import com.community.commom.session.UserElement;
6 6
 import com.community.huiju.service.BillServiceI;
7 7
 import io.swagger.annotations.Api;
8 8
 import io.swagger.annotations.ApiImplicitParam;

+ 1
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/MessageController.java 查看文件

@@ -2,7 +2,7 @@ package com.community.huiju.controller;
2 2
 
3 3
 import com.community.commom.constant.Constant;
4 4
 import com.community.commom.mode.ResponseBean;
5
-import com.community.huiju.config.entity.UserElement;
5
+import com.community.commom.session.UserElement;
6 6
 import com.community.huiju.model.ToCommunities;
7 7
 import com.community.huiju.model.TpMessage;
8 8
 import com.community.huiju.service.MessageServiceI;

+ 1
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/SocialController.java 查看文件

@@ -2,7 +2,7 @@ package com.community.huiju.controller;
2 2
 
3 3
 import com.community.commom.constant.Constant;
4 4
 import com.community.commom.mode.ResponseBean;
5
-import com.community.huiju.config.entity.UserElement;
5
+import com.community.commom.session.UserElement;
6 6
 import com.community.huiju.model.TpActivity;
7 7
 import com.community.huiju.model.TpAnnouncement;
8 8
 import com.community.huiju.model.TpTicket;

+ 2
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/TicketController.java 查看文件

@@ -2,7 +2,7 @@ package com.community.huiju.controller;
2 2
 
3 3
 import com.community.commom.constant.Constant;
4 4
 import com.community.commom.mode.ResponseBean;
5
-import com.community.huiju.config.entity.UserElement;
5
+import com.community.commom.session.UserElement;
6 6
 import com.community.huiju.model.TaUser;
7 7
 import com.community.huiju.model.TpTicket;
8 8
 import com.community.huiju.model.TpTransaction;
@@ -43,6 +43,7 @@ public class TicketController {
43 43
             @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageSize",value = "一页多少数据"),
44 44
             @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token"),
45 45
     })
46
+    @Deprecated
46 47
     public ResponseBean getService(@PathVariable(value = "communityId") String communityId,
47 48
                                    @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
48 49
                                    @RequestParam(value = "pageSize", defaultValue = "3") Integer pageSize,

+ 7
- 4
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/UserController.java 查看文件

@@ -3,8 +3,8 @@ package com.community.huiju.controller;
3 3
 import com.alibaba.fastjson.JSONObject;
4 4
 import com.community.commom.constant.Constant;
5 5
 import com.community.commom.mode.ResponseBean;
6
+import com.community.commom.session.UserElement;
6 7
 import com.community.huiju.common.code.cache.AppkeyCache;
7
-import com.community.huiju.config.entity.UserElement;
8 8
 import com.community.huiju.model.TaUser;
9 9
 import com.community.huiju.model.TpTicket;
10 10
 import com.community.huiju.service.ITaUserService;
@@ -75,6 +75,9 @@ public class UserController {
75 75
     }
76 76
 
77 77
     @ApiOperation(value = "查看房屋成员列表", notes = "查看房屋成员列表")
78
+    @ApiImplicitParams({
79
+            @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")
80
+    })
78 81
     @RequestMapping(value = "/roomUserList", method = RequestMethod.GET)
79 82
     public ResponseBean accessTicket(HttpSession session){
80 83
         UserElement userElement = (UserElement) session.getAttribute(Constant.APP_USER_SESSION);
@@ -109,7 +112,7 @@ public class UserController {
109 112
             @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "userId(租客或者家属) type(1启用 0停用)"),
110 113
             @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token"),
111 114
     })
112
-    @RequestMapping(value = "/user/update/dependentsOrTenants",method = RequestMethod.PUT)
115
+    @RequestMapping(value = "/user/dependentsOrTenants",method = RequestMethod.PUT)
113 116
     public ResponseBean updateDependentsOrTenants(@RequestBody String parameter,
114 117
                                                 HttpSession session){
115 118
         ResponseBean response = new ResponseBean();
@@ -132,7 +135,7 @@ public class UserController {
132 135
                     "type(1家属 0租客)"),
133 136
             @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token"),
134 137
     })
135
-    @RequestMapping(value = "/user/update/addTenantsOrDependents",method = RequestMethod.POST)
138
+    @RequestMapping(value = "/user/addTenantsOrDependents",method = RequestMethod.POST)
136 139
     public ResponseBean addTenantsOrDependents(@RequestBody String parameter,
137 140
                                                HttpSession session){
138 141
         ResponseBean response = new ResponseBean();
@@ -154,7 +157,7 @@ public class UserController {
154 157
             @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "headPortrait(用户头像)"),
155 158
             @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token"),
156 159
     })
157
-    @RequestMapping(value = "/user/update/modifyUserHeadPortrait",method = RequestMethod.PUT)
160
+    @RequestMapping(value = "/user/modifyUserHeadPortrait",method = RequestMethod.PUT)
158 161
     public ResponseBean modifyUserHeadPortrait(@RequestBody String parameter,
159 162
                                                HttpSession session){
160 163
 

+ 4
- 2
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserServiceImpl.java 查看文件

@@ -228,7 +228,7 @@ public class TaUserServiceImpl implements ITaUserService {
228 228
     @Override
229 229
     public ResponseBean startOrEndUsingUser(Integer currentUserId, Integer userId, Integer type) {
230 230
         ResponseBean response = null;
231
-        if ("1".equals(type)){
231
+        if (Constant.EFFECTIVE.equals(type)){
232 232
             response = startAndEnd(currentUserId,userId,true);
233 233
         } else {
234 234
             response = startAndEnd(currentUserId,userId,false);
@@ -319,7 +319,9 @@ public class TaUserServiceImpl implements ITaUserService {
319 319
         user.setVerifyStatus("1");
320 320
         user.setAcceptAgreementStatus("1");
321 321
         user.setRemark("这是业主添加的!");
322
-        user.setUserName(user.getLoginName());
322
+        if (StringUtils.isEmpty(userName)) {
323
+            user.setUserName(user.getLoginName());
324
+        }
323 325
         user.setBuildingOwnerInfoId(taUser.getBuildingOwnerInfoId());
324 326
         user.setCommunityId(taUser.getCommunityId());
325 327
 

CODE/smart-community/app-api/src/main/java/com/community/huiju/config/entity/UserElement.java → CODE/smart-community/community-common/src/main/java/com/community/commom/session/UserElement.java 查看文件

@@ -1,11 +1,10 @@
1
-package com.community.huiju.config.entity;
1
+package com.community.commom.session;
2 2
 
3 3
 import lombok.AllArgsConstructor;
4 4
 import lombok.Data;
5 5
 import lombok.NoArgsConstructor;
6 6
 
7 7
 import java.io.Serializable;
8
-import java.util.Date;
9 8
 
10 9
 /**
11 10
  * session 基础类
@@ -15,6 +14,9 @@ import java.util.Date;
15 14
 @NoArgsConstructor
16 15
 public class UserElement implements Serializable {
17 16
 
17
+
18
+
19
+
18 20
     /** 用户唯一标识符 **/
19 21
     private Integer id;
20 22
 
@@ -30,5 +32,8 @@ public class UserElement implements Serializable {
30 32
     /** 用户状态 **/
31 33
     private String status;
32 34
 
35
+    /** 登陆类型 **/
36
+    private String loginType;
37
+
33 38
 
34 39
 }

二进制
CODE/smart-community/community-common/target/classes/com/community/commom/session/UserElement.class 查看文件


+ 0
- 33
CODE/smart-community/zuul/src/main/java/com/community/huiju/config/entity/UserElement.java 查看文件

@@ -1,33 +0,0 @@
1
-package com.community.huiju.config.entity;
2
-
3
-import lombok.AllArgsConstructor;
4
-import lombok.Data;
5
-import lombok.NoArgsConstructor;
6
-
7
-import java.io.Serializable;
8
-
9
-/**
10
- * session 基础类
11
- */
12
-@Data
13
-@AllArgsConstructor
14
-@NoArgsConstructor
15
-public class UserElement implements Serializable {
16
-
17
-    /** 用户唯一标识符 **/
18
-    private Integer id;
19
-
20
-    /** 用户名 **/
21
-    private String userName;
22
-
23
-    /** 登陆名 **/
24
-    private String loginName;
25
-
26
-    /** 邮箱 **/
27
-    private String email;
28
-
29
-    /** 用户状态 **/
30
-    private String status;
31
-
32
-
33
-}

+ 1
- 1
CODE/smart-community/zuul/src/main/java/com/community/huiju/constant/Status.java 查看文件

@@ -7,7 +7,7 @@ public enum Status {
7 7
 
8 8
     RESPONSE_STATUS_400("400","请求无法被理解!"),
9 9
 
10
-    RESPONSE_STATUS_401("401","无访问权限!"),
10
+    RESPONSE_STATUS_888("888","无访问权限!"),
11 11
 
12 12
     RESPONSE_STATUS_500("500","服务器错误!"),
13 13
 

+ 4
- 2
CODE/smart-community/zuul/src/main/java/com/community/huiju/security/RestAuthenticationEntryPoint.java 查看文件

@@ -31,11 +31,13 @@ public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint {
31 31
             if (Status.RESPONSE_STATUS_800.getValue().equals(headerError)) {
32 32
                 result.addError(Status.RESPONSE_STATUS_800.getValue(),Status.RESPONSE_STATUS_800.getComment());
33 33
             } else if (Status.RESPONSE_STATUS_801.getValue().equals(headerError)) {
34
-                result.addError("401","请您登陆!");
34
+                result.addError(Status.RESPONSE_STATUS_801.getValue(),Status.RESPONSE_STATUS_801.getComment());
35
+            }else if (Status.RESPONSE_STATUS_803.getValue().equals(headerError)) {
36
+                result.addError(Status.RESPONSE_STATUS_803.getValue(),Status.RESPONSE_STATUS_803.getComment());
35 37
             }
36 38
         }
37 39
 //        else {
38
-//            result.addError("403",Status.RESPONSE_STATUS_401.getComment());
40
+//            result.addError(Status.RESPONSE_STATUS_888.getValue(),Status.RESPONSE_STATUS_888.getComment());
39 41
 //        }
40 42
 
41 43
         try {

+ 0
- 30
CODE/smart-community/zuul/src/main/java/com/community/huiju/security/RestPreAuthenticateManager.java 查看文件

@@ -1,30 +0,0 @@
1
-package com.community.huiju.security;
2
-
3
-import com.community.huiju.exception.WisdomSecurityException;
4
-import org.springframework.security.authentication.AuthenticationManager;
5
-import org.springframework.security.core.Authentication;
6
-import org.springframework.security.core.AuthenticationException;
7
-import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
8
-import org.springframework.stereotype.Component;
9
-
10
-public class RestPreAuthenticateManager implements AuthenticationManager {
11
-
12
-    @Override
13
-    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
14
-        if (authentication instanceof PreAuthenticatedAuthenticationToken) {
15
-            PreAuthenticatedAuthenticationToken preAuthrentication = (PreAuthenticatedAuthenticationToken) authentication;
16
-            if (null != preAuthrentication.getAuthorities() && preAuthrentication.getAuthorities().size() > 0) {
17
-                preAuthrentication.setAuthenticated(true);
18
-                return preAuthrentication;
19
-            }
20
-        } else if (authentication instanceof  TokenAuthrentication) {
21
-            TokenAuthrentication tokenAuthrentication = (TokenAuthrentication) authentication;
22
-            if (null != tokenAuthrentication.getAuthorities() && tokenAuthrentication.getAuthorities().size() > 0) {
23
-                tokenAuthrentication.setAuthenticated(true);
24
-                return tokenAuthrentication;
25
-            }
26
-        }
27
-
28
-        throw new WisdomSecurityException("没有授权角色!");
29
-    }
30
-}

+ 8
- 12
CODE/smart-community/zuul/src/main/java/com/community/huiju/security/RestPreAuthenticateProvider.java 查看文件

@@ -8,6 +8,7 @@ import org.springframework.security.web.authentication.preauth.PreAuthenticatedA
8 8
 
9 9
 /**
10 10
  * 授权过程
11
+ *
11 12
  * @author weiximei
12 13
  */
13 14
 public class RestPreAuthenticateProvider implements AuthenticationProvider {
@@ -15,25 +16,20 @@ public class RestPreAuthenticateProvider implements AuthenticationProvider {
15 16
     @Override
16 17
     public Authentication authenticate(Authentication authentication) throws AuthenticationException {
17 18
 
18
-        if (authentication instanceof  PreAuthenticatedAuthenticationToken) {
19
-            PreAuthenticatedAuthenticationToken preAuthrentication = (PreAuthenticatedAuthenticationToken) authentication;
20
-            if (null != preAuthrentication.getAuthorities() && preAuthrentication.getAuthorities().size() > 0) {
21
-                preAuthrentication.setAuthenticated(true);
22
-                return preAuthrentication;
23
-            }
24
-        } else if (authentication instanceof  TokenAuthrentication) {
25
-            TokenAuthrentication tokenAuthrentication = (TokenAuthrentication) authentication;
26
-            if (null != tokenAuthrentication.getAuthorities() && tokenAuthrentication.getAuthorities().size() > 0) {
27
-                tokenAuthrentication.setAuthenticated(true);
28
-                return tokenAuthrentication;
29
-            }
19
+
20
+        TokenAuthrentication tokenAuthrentication = (TokenAuthrentication) authentication.getPrincipal();
21
+        if (null != tokenAuthrentication.getAuthorities() && tokenAuthrentication.getAuthorities().size() > 0) {
22
+            tokenAuthrentication.setAuthenticated(true);
23
+            return tokenAuthrentication;
30 24
         }
31 25
 
26
+
32 27
         throw new WisdomSecurityException("没有授权角色!");
33 28
     }
34 29
 
35 30
     /**
36 31
      * 是否授权过程
32
+     *
37 33
      * @param authentication
38 34
      * @return
39 35
      */

+ 4
- 1
CODE/smart-community/zuul/src/main/java/com/community/huiju/security/RestPreAuthenticatedProcessingFilter.java 查看文件

@@ -1,7 +1,7 @@
1 1
 package com.community.huiju.security;
2 2
 
3 3
 import com.community.commom.constant.Constant;
4
-import com.community.huiju.config.entity.UserElement;
4
+import com.community.commom.session.UserElement;
5 5
 import com.community.huiju.constant.Header;
6 6
 import com.community.huiju.constant.Status;
7 7
 import com.community.huiju.dto.RoleDTO;
@@ -68,6 +68,9 @@ public class RestPreAuthenticatedProcessingFilter extends AbstractPreAuthenticat
68 68
         if (null == request.getAttribute(Header.HEADER_ERROR.getValue())){
69 69
             try {
70 70
                 UserElement userElement = getUserElement(loginType, request);
71
+                if (null == userElement) {
72
+                    request.setAttribute(Header.HEADER_ERROR.getValue(), Status.RESPONSE_STATUS_803.getValue());
73
+                }
71 74
                 List<RoleDTO> roleDTOList = Lists.newArrayList();
72 75
                 if (Constant.APP_LOGIN_TYPE.equals(loginType)) {
73 76
                     roleDTOList = iRoleService.getAppUserRoleByUserId(userElement.getId());

+ 2
- 14
CODE/smart-community/zuul/src/main/java/com/community/huiju/security/WisdomSecurityConfig.java 查看文件

@@ -36,21 +36,9 @@ public class WisdomSecurityConfig extends WebSecurityConfigurerAdapter {
36 36
     private RestPreAuthenticatedProcessingFilter getPreAuthenticatedProcessingFilter() throws Exception {
37 37
         RestPreAuthenticatedProcessingFilter filter = new RestPreAuthenticatedProcessingFilter(parametes.getNoneSercurityPath(),iRoleService);
38 38
         filter.setAuthenticationManager(this.authenticationManagerBean());
39
-        //filter.setAuthenticationManager(new RestPreAuthenticateManager());
40 39
         return filter;
41 40
     }
42 41
 
43
-    /**
44
-     * user-detail服务
45
-     * @param auth
46
-     * @throws Exception
47
-     */
48
-    @Override
49
-    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
50
-        auth.authenticationProvider(new RestPreAuthenticateProvider());
51
-        //super.configure(auth);
52
-    }
53
-
54 42
     /**
55 43
      * 安全策略
56 44
      * @param http
@@ -60,7 +48,7 @@ public class WisdomSecurityConfig extends WebSecurityConfigurerAdapter {
60 48
     protected void configure(HttpSecurity http) throws Exception {
61 49
 
62 50
         http.csrf().disable();
63
-        http
51
+        http.authenticationProvider(new RestPreAuthenticateProvider())
64 52
                 .authorizeRequests()
65 53
                 .antMatchers(parametes.getNoneSercurityPath().toArray(new String[parametes.getNoneSercurityPath().size()])).permitAll() // 不要授权
66 54
                 .anyRequest()// 任何请求需要授权
@@ -70,7 +58,7 @@ public class WisdomSecurityConfig extends WebSecurityConfigurerAdapter {
70 58
 //                .antMatchers(parametes.getAppSercurityPath().get(2).split("=")[1]).hasRole(parametes.getAppSercurityPath().get(2).split("=")[0])
71 59
                 .antMatchers("/app-api/tickets/**").hasRole("OWNER")
72 60
                .and()
73
-                .sessionManagement()
61
+                .sessionManagement().sessionFixation().none()
74 62
                 .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
75 63
                .and()
76 64
                 .httpBasic().authenticationEntryPoint(new RestAuthenticationEntryPoint())

+ 0
- 88
CODE/smart-community/zuul/src/main/java/com/community/huiju/security/dome/TokenAuthrentication.java 查看文件

@@ -1,88 +0,0 @@
1
-package com.community.huiju.security.dome;
2
-
3
-import org.springframework.security.authentication.AbstractAuthenticationToken;
4
-import org.springframework.security.core.GrantedAuthority;
5
-import org.springframework.security.core.SpringSecurityCoreVersion;
6
-
7
-import java.util.Collection;
8
-
9
-/**
10
- * 认证
11
- * @author weiximei
12
- */
13
-public class TokenAuthrentication extends AbstractAuthenticationToken {
14
-
15
-    private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
16
-
17
-    // ~ Instance fields
18
-    // ================================================================================================
19
-
20
-    private final Object principal; // 存储认证信息的
21
-    //private Object credentials; // 存放密码
22
-
23
-    // ~ Constructors
24
-    // ===================================================================================================
25
-
26
-    /**
27
-     * This constructor can be safely used by any code that wishes to create a
28
-     * <code>SmsCodeAuthenticationToken</code>, as the {@link #isAuthenticated()}
29
-     * will return <code>false</code>.
30
-     *
31
-     */
32
-    public TokenAuthrentication(String token) {
33
-        super(null);
34
-        this.principal = token; // 存放token
35
-        //this.credentials = credentials;
36
-        // 是否认证
37
-        setAuthenticated(false);
38
-    }
39
-
40
-    /**
41
-     * This constructor should only be used by <code>AuthenticationManager</code> or
42
-     * <code>AuthenticationProvider</code> implementations that are satisfied with
43
-     * producing a trusted (i.e. {@link #isAuthenticated()} = <code>true</code>)
44
-     * authentication token.
45
-     *
46
-     * @param principal
47
-     * @param authorities
48
-     */
49
-    // principal 用户认证信息,authorities用户的权限
50
-    public TokenAuthrentication(Object principal,
51
-                                      Collection<? extends GrantedAuthority> authorities) {
52
-        super(authorities);
53
-        this.principal = principal; // 登录成功,存放用户信息
54
-        // this.credentials = credentials;
55
-        // 是否认证
56
-        super.setAuthenticated(true); // must use super, as we override
57
-    }
58
-
59
-    // ~ Methods
60
-    // ========================================================================================================
61
-    @Override
62
-    public Object getCredentials() {
63
-        //return this.credentials;
64
-        return null;
65
-    }
66
-
67
-    @Override
68
-    public Object getPrincipal() {
69
-        return this.principal;
70
-    }
71
-
72
-    @Override
73
-    public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException {
74
-        if (isAuthenticated) {
75
-            throw new IllegalArgumentException(
76
-                    "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead");
77
-        }
78
-
79
-        super.setAuthenticated(false);
80
-    }
81
-
82
-    @Override
83
-    public void eraseCredentials() {
84
-        super.eraseCredentials();
85
-        // credentials = null;
86
-    }
87
-
88
-}