From 0e8110030b0eb4e8be3d1504554d56217e64d236 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Thu, 04 Jan 2018 16:25:57 +0800
Subject: [PATCH] 组织模块
---
src/main/java/com/moral/security/WebSecurityConfiguration.java | 3
src/main/java/com/moral/service/impl/AccountServiceImpl.java | 18 ++
src/main/java/com/moral/security/AuthorizationServerConfiguration.java | 9 +
src/main/java/com/moral/service/OrganizationService.java | 3
src/main/java/com/moral/common/bean/ResultBean.java | 8
src/main/java/com/moral/controller/AccountController.java | 7 +
src/main/java/com/moral/service/TokenService.java | 11 +
pom.xml | 22 ++
src/main/java/com/moral/entity/Account.java | 2
src/main/java/com/moral/service/impl/AuthUserServiceImpl.java | 66 ++++++---
src/main/java/com/moral/controller/OrganizationController.java | 10 +
src/main/java/com/moral/security/ResourceServerConfiguration.java | 18 ++
src/main/java/com/moral/service/impl/TokenServiceImpl.java | 110 +++++++++++++++
src/main/java/com/moral/common/aop/ControllerAOP.java | 34 ++--
src/main/java/com/moral/service/impl/OrganizationServiceImpl.java | 20 ++
src/main/java/com/moral/controller/TokenControllers.java | 48 ++++++
src/main/java/com/moral/service/AccountService.java | 2
17 files changed, 334 insertions(+), 57 deletions(-)
diff --git a/pom.xml b/pom.xml
index cc12fb1..e0ddd4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -146,11 +146,27 @@
<finalName>screen_api_v2</finalName>
<plugins>
<plugin>
+ <groupId>org.mybatis.generator</groupId>
+ <artifactId>mybatis-generator-maven-plugin</artifactId>
+ <version>1.3.2</version>
+ <configuration>
+ <!--���������������������-->
+ <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
+ <verbose>true</verbose>
+ <overwrite>false</overwrite>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.mybatis.generator</groupId>
+ <artifactId>mybatis-generator-core</artifactId>
+ <version>1.3.2</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
-
-
-</project>
+</project>
\ No newline at end of file
diff --git a/src/main/java/com/moral/common/aop/ControllerAOP.java b/src/main/java/com/moral/common/aop/ControllerAOP.java
index 8c90a0b..1b6072d 100644
--- a/src/main/java/com/moral/common/aop/ControllerAOP.java
+++ b/src/main/java/com/moral/common/aop/ControllerAOP.java
@@ -52,29 +52,27 @@
Object target = pjp.getTarget();
Method currentMethod = target.getClass().getMethod(msig.getName(), msig.getParameterTypes());
Type type = currentMethod.getGenericReturnType();
- String message = "";
+ String message = e.getMessage();
if (e instanceof BusinessException) {
- message = e.getLocalizedMessage();
} else if (e instanceof ValidateException) {
- message = e.getLocalizedMessage();
} else {
- log.error(pjp.getSignature() + " error ", e);
- message = e.toString();
+ log.error(pjp.getSignature() + " error: " + e.toString(), e);
}
-
if (type instanceof ParameterizedType) {
- Type rawType = ((ParameterizedType) type).getRawType();
- if (rawType == AppData.class) {
- return new AppData(message,AppData.FAIL);
- } else if (rawType == ResultBean.class) {
- return new ResultBean(message,ResultBean.FAIL);
- } else if (rawType == Map.class) {
- Map<String, Object> resultMap = new HashMap<String, Object>();
- resultMap.put("msg", message);
- return resultMap;
- }
+ type = ((ParameterizedType) type).getRawType();
}
- return null;
-
+ if (type == AppData.class) {
+ return new AppData(message, AppData.FAIL);
+ } else if (type == ResultBean.class) {
+ return new ResultBean(e);
+ } else if (type == Map.class) {
+ Map<String, Object> resultMap = new HashMap<String, Object>();
+ resultMap.put("msg", message);
+ return resultMap;
+ } else if (type == Void.TYPE) {
+ return null;
+ } else {
+ return type.getClass().newInstance();
+ }
}
}
diff --git a/src/main/java/com/moral/common/bean/ResultBean.java b/src/main/java/com/moral/common/bean/ResultBean.java
index 17e19e4..1e95aed 100644
--- a/src/main/java/com/moral/common/bean/ResultBean.java
+++ b/src/main/java/com/moral/common/bean/ResultBean.java
@@ -17,24 +17,20 @@
private T data;
public ResultBean() {
- super();
- this.message = "success";
- this.code = SUCCESS;
}
public ResultBean(Throwable e) {
- super();
this.message = e.toString();
this.code = FAIL;
}
public ResultBean(T data) {
- this();
+ this.message = "success";
+ this.code = SUCCESS;
this.data = data;
}
public ResultBean(String message, int code) {
- super();
this.message = message;
this.code = code;
}
diff --git a/src/main/java/com/moral/controller/AccountController.java b/src/main/java/com/moral/controller/AccountController.java
index a535963..3799f3d 100644
--- a/src/main/java/com/moral/controller/AccountController.java
+++ b/src/main/java/com/moral/controller/AccountController.java
@@ -9,6 +9,7 @@
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -44,4 +45,10 @@
Integer result = accountService.deleteAccountsByLogic(ids);
return new ResultBean<Integer>(result);
}
+
+ @GetMapping("{accountName}")
+ public ResultBean<Integer> getAccountCountByAccountName(@PathVariable("accountName") String accountName) {
+ Integer result = accountService.getAccountCountByAccountName(accountName);
+ return new ResultBean<Integer>(result);
+ }
}
diff --git a/src/main/java/com/moral/controller/OrganizationController.java b/src/main/java/com/moral/controller/OrganizationController.java
index 10fec6e..bfeae2d 100644
--- a/src/main/java/com/moral/controller/OrganizationController.java
+++ b/src/main/java/com/moral/controller/OrganizationController.java
@@ -5,6 +5,9 @@
import com.moral.entity.Organization;
import com.moral.service.OrganizationService;
import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
import javax.annotation.Resource;
@RestController
@@ -28,4 +31,11 @@
ResultBean resultBean = new ResultBean(ResultBean.SUCCESS);
return resultBean;
}
+
+ @GetMapping("list/{name}")
+ public ResultBean<List<Organization>> getOrganizationsByName(@PathVariable("name") String name) {
+ List<Organization> organizations = organizationService.getOrganizationsByName(name);
+ return new ResultBean<List<Organization>>(organizations);
+ }
+
}
diff --git a/src/main/java/com/moral/controller/TokenControllers.java b/src/main/java/com/moral/controller/TokenControllers.java
new file mode 100644
index 0000000..5376565
--- /dev/null
+++ b/src/main/java/com/moral/controller/TokenControllers.java
@@ -0,0 +1,48 @@
+package com.moral.controller;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.moral.service.TokenService;
+
+@RestController
+public class TokenControllers {
+
+ @Resource
+ private TokenService tokenService;
+
+ @GetMapping("oauth/token/{type}/{username}/{password}")
+ public Map<String, Object> getAuthToken(@PathVariable("username") String username,
+ @PathVariable("password") String password, @PathVariable("type") String type, HttpServletRequest request) {
+ Map<String, Object> result = new HashMap<String, Object>();
+ if (ObjectUtils.isEmpty(username) || ObjectUtils.isEmpty(password) || ObjectUtils.isEmpty(type)) {
+ result.put("msg", "���������������������");
+ } else {
+ String url = request.getRequestURL().toString().replace(request.getRequestURI(), "") + request.getContextPath();
+ String realPath = request.getServletContext().getRealPath("/");
+ result = tokenService.getAuthToken(type, username, password, url);
+ }
+ return result;
+ }
+
+ @PostMapping("oauth/token/{refresh_token}")
+ public Map<String, Object> getAuthToken(@PathVariable("refresh_token") String refresh_token,HttpServletRequest request) {
+ Map<String, Object> result = new HashMap<String, Object>();
+ if (ObjectUtils.isEmpty(refresh_token)) {
+ result.put("msg", "���������������������");
+ } else {
+ String url = request.getRequestURL().toString().replace(request.getRequestURI(), "") + request.getContextPath();
+ result = tokenService.getAuthToken(refresh_token, url);
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/com/moral/entity/Account.java b/src/main/java/com/moral/entity/Account.java
index 935a924..bc31017 100644
--- a/src/main/java/com/moral/entity/Account.java
+++ b/src/main/java/com/moral/entity/Account.java
@@ -68,5 +68,7 @@
* @mbggenerated Thu Dec 07 16:17:21 CST 2017
*/
private Date expireTime;
+
+ private Organization organization;
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/security/AuthorizationServerConfiguration.java b/src/main/java/com/moral/security/AuthorizationServerConfiguration.java
index 17da5b1..c0b338f 100644
--- a/src/main/java/com/moral/security/AuthorizationServerConfiguration.java
+++ b/src/main/java/com/moral/security/AuthorizationServerConfiguration.java
@@ -4,6 +4,7 @@
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
@@ -17,6 +18,9 @@
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
private static String REALM = "MY_OAUTH_REALM";
+
+ @Autowired
+ private UserDetailsService userDetailsService;
@Autowired
private TokenStore tokenStore;
@@ -43,7 +47,10 @@
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
- endpoints.tokenStore(tokenStore).userApprovalHandler(userApprovalHandler).authenticationManager(authenticationManager);
+ endpoints.tokenStore(tokenStore)
+ .userApprovalHandler(userApprovalHandler)
+ .authenticationManager(authenticationManager)
+ .userDetailsService(userDetailsService);
}
@Override
diff --git a/src/main/java/com/moral/security/ResourceServerConfiguration.java b/src/main/java/com/moral/security/ResourceServerConfiguration.java
index a69f9b4..edde722 100644
--- a/src/main/java/com/moral/security/ResourceServerConfiguration.java
+++ b/src/main/java/com/moral/security/ResourceServerConfiguration.java
@@ -27,5 +27,23 @@
.authorizeRequests()
.antMatchers("/test/**").permitAll()
.and().exceptionHandling().accessDeniedHandler(new OAuth2AccessDeniedHandler());
+
+ /*http.requestMatchers()
+ .antMatchers("/screen/**")
+ .and()
+ .authorizeRequests()
+ .antMatchers("/screen/**").permitAll()
+ .and()
+ .exceptionHandling()
+ .accessDeniedHandler(new OAuth2AccessDeniedHandler());*/
+
+ /*http.requestMatchers()
+ .antMatchers("/mobile/**")
+ .and()
+ .authorizeRequests()
+ .antMatchers("/mobile/**").permitAll()
+ .and()
+ .exceptionHandling()
+ .accessDeniedHandler(new OAuth2AccessDeniedHandler());*/
}
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/security/WebSecurityConfiguration.java b/src/main/java/com/moral/security/WebSecurityConfiguration.java
index 98f1146..d54621f 100644
--- a/src/main/java/com/moral/security/WebSecurityConfiguration.java
+++ b/src/main/java/com/moral/security/WebSecurityConfiguration.java
@@ -14,6 +14,7 @@
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.oauth2.provider.ClientDetailsService;
import org.springframework.security.oauth2.provider.approval.ApprovalStore;
import org.springframework.security.oauth2.provider.approval.TokenApprovalStore;
@@ -44,7 +45,7 @@
.withUser("bill").password("abc123").roles("ADMIN").and()
.withUser("bob").password("abc123").roles("USER");
-// auth.userDetailsService(userDetailsService).passwordEncoder(new Md5PasswordEncoder());
+ auth.userDetailsService(userDetailsService).passwordEncoder(NoOpPasswordEncoder.getInstance());
}
@Override
diff --git a/src/main/java/com/moral/service/AccountService.java b/src/main/java/com/moral/service/AccountService.java
index e0ebbb5..c82b183 100644
--- a/src/main/java/com/moral/service/AccountService.java
+++ b/src/main/java/com/moral/service/AccountService.java
@@ -20,4 +20,6 @@
Integer deleteAccountsByLogic(List<Integer> ids);
+ Integer getAccountCountByAccountName(String accountName);
+
}
diff --git a/src/main/java/com/moral/service/OrganizationService.java b/src/main/java/com/moral/service/OrganizationService.java
index b41561b..4a243d9 100644
--- a/src/main/java/com/moral/service/OrganizationService.java
+++ b/src/main/java/com/moral/service/OrganizationService.java
@@ -18,4 +18,7 @@
public void addOrModify(Organization organization);
public void deleteByIds(Integer... ids);
+
+ List<Organization> getOrganizationsByName(String name);
+
}
diff --git a/src/main/java/com/moral/service/TokenService.java b/src/main/java/com/moral/service/TokenService.java
new file mode 100644
index 0000000..2371f02
--- /dev/null
+++ b/src/main/java/com/moral/service/TokenService.java
@@ -0,0 +1,11 @@
+package com.moral.service;
+
+import java.util.Map;
+
+public interface TokenService {
+
+ Map<String, Object> getAuthToken(String type, String username, String password, String url);
+
+ Map<String, Object> getAuthToken(String token, String url);
+
+}
diff --git a/src/main/java/com/moral/service/impl/AccountServiceImpl.java b/src/main/java/com/moral/service/impl/AccountServiceImpl.java
index 53cfd53..08c3f0c 100644
--- a/src/main/java/com/moral/service/impl/AccountServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AccountServiceImpl.java
@@ -26,7 +26,9 @@
import com.moral.common.util.Crypto;
import com.moral.common.util.ResourceUtil;
import com.moral.entity.Account;
+import com.moral.entity.Organization;
import com.moral.mapper.AccountMapper;
+import com.moral.mapper.OrganizationMapper;
import com.moral.service.AccountService;
import com.moral.service.OrganizationService;
@@ -42,6 +44,9 @@
@Resource
private OrganizationService organizationService;
+ @Resource
+ private OrganizationMapper organizationMapper;
+
@Override
public Map<String, Object> screenLogin(Map<String, Object> parameters) {
Map<String, Object> result = new HashMap<String, Object>();
@@ -109,6 +114,12 @@
}
PageHelper.startPage(Integer.valueOf((String) parameters.get("pageIndex")), Integer.valueOf((String) parameters.get("pageSize")));
List<Account> accounts = accountMapper.selectByExample(example);
+ for (Account account : accounts) {
+ if (!ObjectUtils.isEmpty(account.getOrganizationId())) {
+ Organization organization = organizationMapper.selectByPrimaryKey(account.getOrganizationId());
+ account.setOrganization(organization);
+ }
+ }
return new PageBean<Account>(accounts);
}
@@ -135,4 +146,11 @@
return accountMapper.updateByExampleSelective(account, example);
}
+ @Override
+ public Integer getAccountCountByAccountName(String accountName) {
+ Account account = new Account();
+ account.setAccountName(accountName);
+ return accountMapper.selectCount(account);
+ }
+
}
diff --git a/src/main/java/com/moral/service/impl/AuthUserServiceImpl.java b/src/main/java/com/moral/service/impl/AuthUserServiceImpl.java
index 9f37169..cac5f0f 100644
--- a/src/main/java/com/moral/service/impl/AuthUserServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AuthUserServiceImpl.java
@@ -1,38 +1,58 @@
package com.moral.service.impl;
-import com.moral.entity.auth.AuthRole;
-import com.moral.entity.auth.AuthUser;
-//import com.moral.service.UserService;
-import org.springframework.beans.factory.annotation.Autowired;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.data.redis.core.RedisTemplate;
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;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
+import com.moral.common.util.RedisUtil;
+import com.moral.entity.Account;
+import com.moral.entity.OperateUser;
+import com.moral.mapper.AccountMapper;
+import com.moral.service.AccountService;
+import com.moral.service.OperateUserService;
@Service
public class AuthUserServiceImpl implements UserDetailsService {
-// @Autowired
-// private UserService userService;
+ @Resource
+ private AccountMapper accountMapper;
- @Override
- public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
-// AuthUser user = userService.findByUsername(username);
- AuthUser user = null;
- if(user == null){
- throw new UsernameNotFoundException("������������"+ username + "������������");
- }
- Collection<SimpleGrantedAuthority> collection = new HashSet<SimpleGrantedAuthority>();
- Iterator<AuthRole> iterator = user.getList().iterator();
- while (iterator.hasNext()){
- collection.add(new SimpleGrantedAuthority(iterator.next().getRole_name()));
- }
+ @Resource
+ private AccountService accountService;
- return new org.springframework.security.core.userdetails.User(username, user.getPassword(), collection);
- }
+ @Resource
+ private OperateUserService operateUserService;
+
+ @Resource
+ private RedisTemplate<String, String> redisTemplate;
+
+ @Override
+ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+ String type = RedisUtil.get(redisTemplate, "token_" + username), password;
+ Collection<SimpleGrantedAuthority> collection = new HashSet<SimpleGrantedAuthority>();
+ if ("screen".equals(type)) {
+ Account account = accountService.getAccountByAccountName(username);
+ password = account.getPassword();
+ List<Map<String, Object>> roleNames = accountMapper.getRoleNameByAccountId(account.getId());
+ for (Map<String, Object> roleName : roleNames) {
+ collection.add(new SimpleGrantedAuthority((String) roleName.get("role_name")));
+ }
+ } else {
+ OperateUser operateUser = operateUserService.getOperateUserByMobile(username);
+ password = operateUser.getPassword();
+ collection.add((new SimpleGrantedAuthority("ROLE_MOBILE")));
+ }
+ return new User(username, password, collection);
+ }
}
diff --git a/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java b/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java
index 25f7e45..fc181d0 100644
--- a/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java
@@ -1,9 +1,9 @@
package com.moral.service.impl;
import com.github.pagehelper.PageHelper;
+import com.moral.common.bean.Constants;
import com.moral.common.bean.PageBean;
import com.moral.common.util.ExampleUtil;
-import com.moral.common.util.MyBatisBaseMapUtil;
import com.moral.common.util.ValidateUtil;
import com.moral.entity.Organization;
import com.moral.entity.exp.OrganizationExp;
@@ -13,7 +13,7 @@
import com.moral.service.OrganizationService;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
-import tk.mybatis.mapper.mapperhelper.SqlHelper;
+import tk.mybatis.mapper.entity.Example.Criteria;
import javax.annotation.Resource;
import java.util.*;
@@ -58,7 +58,6 @@
public PageBean queryByPageBean(PageBean pageBean){
Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean);
- //me
List<Example.Criteria> criteriaList = example.getOredCriteria();
if(criteriaList!=null&&criteriaList.size()>0){
for(Example.Criteria cri : criteriaList){
@@ -68,8 +67,8 @@
example.or().andNotEqualTo("isDelete","1");
}
PageHelper.startPage(pageBean.getPageIndex(),pageBean.getPageSize());
- List page = organizationMapper.selectWithAreaNameByExample(example);
- return new PageBean(page);
+ List<OrganizationExp> organizationExpandList = organizationMapper.selectWithAreaNameByExample(example);
+ return new PageBean(organizationExpandList);
}
public void addOrModify(Organization organization){
try{
@@ -102,4 +101,15 @@
}
}
+
+ @Override
+ public List<Organization> getOrganizationsByName(String name) {
+ Example example = new Example(Organization.class);
+ Criteria criteria = example.createCriteria();
+ criteria.andLike("name", "%" + name + "%");
+ criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE);
+ List<Organization> organizations = organizationMapper.selectByExample(example);
+ return organizations;
+ }
+
}
diff --git a/src/main/java/com/moral/service/impl/TokenServiceImpl.java b/src/main/java/com/moral/service/impl/TokenServiceImpl.java
new file mode 100644
index 0000000..221fdbe
--- /dev/null
+++ b/src/main/java/com/moral/service/impl/TokenServiceImpl.java
@@ -0,0 +1,110 @@
+package com.moral.service.impl;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.codec.binary.Base64;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.client.RestTemplate;
+
+import com.moral.common.bean.Constants;
+import com.moral.common.util.Crypto;
+import com.moral.common.util.RedisUtil;
+import com.moral.entity.Account;
+import com.moral.entity.OperateUser;
+import com.moral.service.AccountService;
+import com.moral.service.OperateUserService;
+import com.moral.service.TokenService;
+
+@Service
+@SuppressWarnings({ "unchecked", "rawtypes" })
+public class TokenServiceImpl implements TokenService {
+
+ private static final String AUTH_SERVER_URI = "/oauth/token?grant_type=password&username={username}&password={password}";
+
+ private static final String REFRESH_SERVER_URI = "/oauth/token?grant_type=refresh_token&refresh_token={refresh_token}";
+
+ @Resource
+ private AccountService accountService;
+
+ @Resource
+ private OperateUserService operateUserService;
+
+ @Resource
+ private RedisTemplate<String, String> redisTemplate;
+
+ @Override
+ public Map<String, Object> getAuthToken(String type, String username, String password, String url) {
+ Map<String, Object> result = new HashMap<String, Object>();
+ password = Crypto.md5(password);
+ if ("screen".equals(type)) {
+ Account account = accountService.getAccountByAccountName(username);
+ if (ObjectUtils.isEmpty(account)) {
+ result.put("msg", "���������������������");
+ return result;
+ } else {
+ if (!password.equals(account.getPassword())) {
+ result.put("msg", "������������������");
+ return result;
+ }
+ if (Constants.IS_DELETE_TRUE.equals(account.getIsDelete())) {
+ result.put("msg", "���������������������������������������������");
+ return result;
+ }
+ result.put("accountId", account.getId());
+ }
+ } else if ("mobile".equals(type)) {
+ OperateUser operateUser = operateUserService.getOperateUserByMobile(username);
+ if (ObjectUtils.isEmpty(operateUser)) {
+ result.put("msg", "���������������������");
+ return result;
+ } else {
+ if (!password.equals(operateUser.getPassword())) {
+ result.put("msg", "������������������");
+ return result;
+ }
+ result.put("userId", operateUser.getId());
+ }
+ } else {
+ result.put("msg", "������������������");
+ return result;
+ }
+ RedisUtil.set(redisTemplate, "token_" + username, type);
+ RestTemplate restTemplate = new RestTemplate();
+ HttpEntity<String> httpEntity = new HttpEntity<String>(getHeadersWithClientCredentials());
+ Map map = restTemplate.postForObject(url + AUTH_SERVER_URI, httpEntity, Map.class, username, password);
+ result.putAll(map);
+ return result;
+ }
+
+ @Override
+ public Map<String, Object> getAuthToken(String refresh_token, String url) {
+ HttpEntity<String> httpEntity = new HttpEntity<String>(getHeadersWithClientCredentials());
+ RestTemplate restTemplate = new RestTemplate();
+ Map map = restTemplate.postForObject(url + REFRESH_SERVER_URI, httpEntity, Map.class, refresh_token);
+ return map;
+ }
+
+ private static HttpHeaders getHeaders() {
+ HttpHeaders headers = new HttpHeaders();
+ headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
+ return headers;
+ }
+
+ private static HttpHeaders getHeadersWithClientCredentials() {
+ String plainClientCredentials = "my-trusted-client:secret";
+ String base64ClientCredentials = new String(Base64.encodeBase64(plainClientCredentials.getBytes()));
+ HttpHeaders headers = getHeaders();
+ headers.add("Authorization", "Basic " + base64ClientCredentials);
+ return headers;
+ }
+
+}
--
Gitblit v1.8.0