浏览代码

Merge branch 'master' of https://gitee.com/zouxuan/mec into zouxuan

zouxuan 6 年之前
父节点
当前提交
02374dadc1

+ 1 - 1
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/enums/SysUserType.java

@@ -6,7 +6,7 @@ import com.ym.mec.common.dal.base.BaseStringEnum;
 
 public enum SysUserType implements BaseStringEnum<SysUserType> {
 
-	STUDENT("学生"), TEACHER("老师"), SYSTEM("系统內置");
+	STUDENT("学生"), EDU_TEACHER("教务老师"), ADVISER("指导老师"), SYSTEM("系统內置");
 
 	private String desc;
 

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/WebSecurityConfig.java

@@ -51,7 +51,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
 	@Override
 	protected void configure(HttpSecurity http) throws Exception {
 		// 表单登录 方式
-		http
+		http.formLogin().loginPage("/loginIn").loginPage("/smsLogin").and()
 			.addFilterBefore(getUsernameAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
 			.addFilterBefore(getPhoneLoginAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
 				//.exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()// 当未登录访问资源时

+ 18 - 6
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/service/DefaultUserDetailsService.java

@@ -1,15 +1,14 @@
 package com.ym.mec.auth.core.provider.service;
 
-import com.ym.mec.auth.api.dto.SysUserInfo;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.config.constant.SecurityConstants;
-import com.ym.mec.auth.service.SysUserService;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.LockedException;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.AuthorityUtils;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.User;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetailsService;
@@ -17,7 +16,11 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import com.ym.mec.auth.api.dto.SysUserInfo;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.api.enums.SysUserType;
+import com.ym.mec.auth.config.constant.SecurityConstants;
+import com.ym.mec.auth.service.SysUserService;
 
 @Service
 public class DefaultUserDetailsService implements UserDetailsService {
@@ -49,7 +52,16 @@ public class DefaultUserDetailsService implements UserDetailsService {
 			throw new LockedException("账户被锁定");
 		}
 
-		List<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList(userInfo.getPermissions());
+		List<GrantedAuthority> authorities = null;
+
+		String userType = userInfo.getSysUser().getUserType();
+
+		if (StringUtils.endsWithIgnoreCase(userType, SysUserType.SYSTEM.getName())) {
+			authorities = AuthorityUtils.createAuthorityList(userInfo.getPermissions());
+		} else {
+			authorities = new ArrayList<GrantedAuthority>();
+			authorities.add(new SimpleGrantedAuthority(userType.toLowerCase()));
+		}
 
 		SysUser sysUser = userInfo.getSysUser();
 

+ 0 - 40
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/service/PhoneUserDetailService.java

@@ -1,40 +0,0 @@
-package com.ym.mec.auth.core.provider.service;
-
-import com.ym.mec.auth.api.dto.SysUserInfo;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.service.SysUserService;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.authentication.LockedException;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.AuthorityUtils;
-import org.springframework.security.core.userdetails.User;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UserDetailsService;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Service;
-import java.util.List;
-
-@Service
-public class PhoneUserDetailService implements UserDetailsService {
-
-    @Autowired
-    private SysUserService sysUserService;
-
-    @Override
-    public UserDetails loadUserByUsername(String phone) throws UsernameNotFoundException {
-        SysUserInfo userInfo = sysUserService.queryUserInfoByPhone(phone);
-        if(userInfo == null){
-            return null;
-        }else if(StringUtils.equals(userInfo.getSysUser().getLockFlag(),"9")){
-            throw new LockedException("账户被锁定");
-        }
-        List<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList(userInfo.getPermissions());
-
-        SysUser sysUser = userInfo.getSysUser();
-
-        return new User(phone, "", StringUtils.equals(sysUser.getLockFlag(), "0"), true, true, true,
-                authorities);
-    }
-
-}

+ 10 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/SmsCodeController.java

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiOperation;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -24,9 +26,16 @@ public class SmsCodeController extends BaseController {
     @ApiOperation("发送登录短信验证码")
     @ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String")
     @PostMapping("/sendVerifyCode")
-    @PreAuthorize("@pcs.hasRoles('ROLE_ADMIN')")
+    //@PreAuthorize("hasAnyAuthority('student')")
+    @PreAuthorize("@pcs.hasPermissions('sys_user_manage')")
     public Object sendLoginVerifyCode(String mobile) {
         smsCodeService.sendValidCode(mobile);
         return succeed();
     }
+    
+    @PostMapping("/query")
+    public Object query() {
+    	Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        return succeed(authentication);
+    }
 }

+ 1 - 1
mec-auth/mec-auth-server/src/main/resources/application.yml

@@ -54,7 +54,7 @@ mybatis:
     mapperLocations: classpath:config/mybatis/*.xml
     
 swagger:
-  base-package: com.ym.mec.auth.controller
+  base-package: com.ym.mec.auth.web.controller
   
 #spring boot admin 相关配置
 management:

+ 2 - 2
mec-auth/mec-auth-server/src/main/resources/bootstrap.properties

@@ -1,9 +1,9 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=localhost:8848
+spring.cloud.nacos.config.server-addr=47.99.212.176:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=40ebb2ed-23ac-4afb-b48f-8d727f332edc
+spring.cloud.nacos.config.namespace=e246d169-227d-4012-8c34-e90e057d95d2
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
 spring.cloud.nacos.config.group=DEFAULT_GROUP
 #\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}

+ 1 - 1
mec-common/src/main/java/com/ym/mec/common/exception/BasicControllerAdvice.java

@@ -36,7 +36,7 @@ public class BasicControllerAdvice extends BaseController {
 
 		if (e instanceof AccessDeniedException) {
 			logger.error("Access Denied", e);
-			return failed(HttpStatus.FORBIDDEN.value(), "授权失败,禁止访问");
+			return failed(HttpStatus.FORBIDDEN.value(), "禁止访问");
 		}
 
 		logger.error("System Error", e);

+ 2 - 0
mec-common/src/main/java/com/ym/mec/common/redis/service/RedisCache.java

@@ -3,6 +3,7 @@ package com.ym.mec.common.redis.service;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.stereotype.Component;
@@ -13,6 +14,7 @@ import com.ym.mec.common.cache.CacheException;
 @Component
 public class RedisCache implements Cache {
 
+	@Autowired
 	private RedisTemplate<String, Object> redisTemplate;
 
 	@Override

+ 1 - 1
mec-common/src/main/java/com/ym/mec/common/security/BaseAccessDeniedHandler.java

@@ -32,7 +32,7 @@ public class BaseAccessDeniedHandler extends OAuth2AccessDeniedHandler {
 		response.setStatus(HttpServletResponse.SC_OK);
 		PrintWriter printWriter = response.getWriter();
 
-		HttpResponseResult result = new HttpResponseResult(false, HttpServletResponse.SC_FORBIDDEN, null, "授权失败,禁止访问");
+		HttpResponseResult result = new HttpResponseResult(false, HttpServletResponse.SC_FORBIDDEN, null, "禁止访问");
 
 		ObjectMapper objectMapper = new ObjectMapper();
 

+ 2 - 2
mec-gateway/mec-gateway-web/src/main/resources/bootstrap.properties

@@ -1,9 +1,9 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=localhost:8848
+spring.cloud.nacos.config.server-addr=47.99.212.176:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=40ebb2ed-23ac-4afb-b48f-8d727f332edc
+spring.cloud.nacos.config.namespace=e246d169-227d-4012-8c34-e90e057d95d2
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
 spring.cloud.nacos.config.group=DEFAULT_GROUP
 #\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}