Explorar el Código

登陆后将admin的token保存至redis

yaobo hace 7 años
padre
commit
c36cb642e1

+ 8 - 0
src/main/java/cn/efunbox/audio/consts/Const.java

@@ -0,0 +1,8 @@
+package cn.efunbox.audio.consts;
+
+/**
+ * Created by yao on 17-10-16.
+ */
+public class Const {
+    public static final String REDIS_ADMIN = "efunbox_audio_admin_";
+}

+ 1 - 5
src/main/java/cn/efunbox/audio/enums/Status.java

@@ -1,8 +1,4 @@
-package cn.efunbox.audio.enums;
-
-import lombok.Data;
-import lombok.Getter;
-import lombok.Setter;
+package cn.efunbox.audio.consts;
 
 /**
  * Created by yao on 17-9-26.

+ 25 - 3
src/main/java/cn/efunbox/audio/controller/AdminController.java

@@ -1,5 +1,6 @@
 package cn.efunbox.audio.controller;
 
+import cn.efunbox.audio.consts.Const;
 import cn.efunbox.audio.entity.Admin;
 import cn.efunbox.audio.entity.Channel;
 import cn.efunbox.audio.service.AdminService;
@@ -10,6 +11,8 @@ import cn.efunbox.audio.util.HttpUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.tomcat.util.security.MD5Encoder;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -31,6 +34,8 @@ public class AdminController {
 
     @Autowired
     AdminService adminService;
+    @Autowired
+    StringRedisTemplate stringRedisTemplate;
 
     @RequestMapping(value = "/login" ,method = RequestMethod.POST)
     public void Search(HttpServletRequest request, HttpServletResponse response){
@@ -49,9 +54,15 @@ public class AdminController {
         String pwdMD5 = Common.getMD5(Common.getMD5(pwd)+admin.getSalt());
 //        System.out.println(pwdMD5);
 //        System.out.println(admin.getPwd());
-        if(pwdMD5.equalsIgnoreCase(admin.getPwd()))
-            HttpUtil.responseOk(request, response);
-        else
+        if(pwdMD5.equalsIgnoreCase(admin.getPwd())){
+            String token = UUID.randomUUID().toString().substring(0, 16);
+            admin.setToken(token);
+            adminService.Update(admin);
+            admin.setPwd("");
+            admin.setSalt("");
+            SaveRedis(admin);
+            HttpUtil.responseOkData(request, response, admin);
+        }else
             HttpUtil.responseApiCode(request, response, ApiCode.INVALID_TOKEN);
 
         return;
@@ -69,6 +80,7 @@ public class AdminController {
         if(idChannel==null || idChannel.length()==0)
             idChannel = "0";
         String salt = UUID.randomUUID().toString().substring(0, 16);
+        String token = UUID.randomUUID().toString().substring(0, 16);
         String pwdMD5 = Common.getMD5(Common.getMD5(pwd) + salt);
 
         List<Admin> list = adminService.SearchByName(name);
@@ -80,11 +92,21 @@ public class AdminController {
         admin.setName(name);
         admin.setPwd(pwdMD5);
         admin.setSalt(salt);
+        admin.setToken(token);
         admin.setIdChannel(Long.valueOf(idChannel));
         admin = adminService.Insert(admin);
+        SaveRedis(admin);
 
         HttpUtil.responseOutWithJson(request, response, admin);
         return;
     }
 
+    /**
+     * 将token放入redis
+     * @param admin
+     */
+    public void SaveRedis(Admin admin){
+        ValueOperations valueOperations = stringRedisTemplate.opsForValue();
+        valueOperations.set(Const.REDIS_ADMIN+admin.getId(), admin.getToken());
+    }
 }

+ 5 - 1
src/main/java/cn/efunbox/audio/entity/Admin.java

@@ -1,7 +1,7 @@
 package cn.efunbox.audio.entity;
 
 
-import cn.efunbox.audio.enums.Status;
+import cn.efunbox.audio.consts.Status;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;
@@ -40,6 +40,10 @@ public class Admin implements Serializable, Cloneable {
     @Column
     private String salt;
 
+    //每次登陆后生成的新token
+    @Column
+    private String token;
+
     //渠道id
     @Column
     private Long idChannel = 0L;

+ 1 - 1
src/main/java/cn/efunbox/audio/entity/Audio.java

@@ -1,7 +1,7 @@
 package cn.efunbox.audio.entity;
 
 
-import cn.efunbox.audio.enums.Status;
+import cn.efunbox.audio.consts.Status;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;

+ 1 - 1
src/main/java/cn/efunbox/audio/entity/Channel.java

@@ -1,7 +1,7 @@
 package cn.efunbox.audio.entity;
 
 
-import cn.efunbox.audio.enums.Status;
+import cn.efunbox.audio.consts.Status;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;

+ 1 - 1
src/main/java/cn/efunbox/audio/entity/Device.java

@@ -1,7 +1,7 @@
 package cn.efunbox.audio.entity;
 
 
-import cn.efunbox.audio.enums.Status;
+import cn.efunbox.audio.consts.Status;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;

+ 1 - 1
src/main/java/cn/efunbox/audio/entity/Grouping.java

@@ -1,7 +1,7 @@
 package cn.efunbox.audio.entity;
 
 
-import cn.efunbox.audio.enums.Status;
+import cn.efunbox.audio.consts.Status;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;

+ 1 - 1
src/main/java/cn/efunbox/audio/entity/Record.java

@@ -1,7 +1,7 @@
 package cn.efunbox.audio.entity;
 
 
-import cn.efunbox.audio.enums.Status;
+import cn.efunbox.audio.consts.Status;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;

+ 1 - 1
src/main/java/cn/efunbox/audio/entity/Rights.java

@@ -1,7 +1,7 @@
 package cn.efunbox.audio.entity;
 
 
-import cn.efunbox.audio.enums.Status;
+import cn.efunbox.audio.consts.Status;
 import lombok.Data;
 import lombok.ToString;
 import org.hibernate.annotations.DynamicInsert;

+ 6 - 0
src/main/java/cn/efunbox/audio/impl/AdminServiceImpl.java

@@ -40,5 +40,11 @@ public class AdminServiceImpl implements AdminService {
         return a;
     }
 
+    @Override
+    public Admin Update(Admin admin){
+        Admin a = adminRepo.save(admin);
+        return a;
+    }
+
 
 }

+ 4 - 4
src/main/java/cn/efunbox/audio/plugin/AliStsOssAuth.java

@@ -82,10 +82,10 @@ public class AliStsOssAuth {
     private String accessKeySecretRole = null;
     private String securityTokenRole = null;
 
-    private final String accessKeyIdRoleSession = "OSS_AUTH_accessKeyIdRole";
-    private final String accessKeySecretRoleSession = "OSS_AUTH_accessKeySecretRole";
-    private final String securityTokenRoleSession = "OSS_AUTH_securityTokenRole";
-    private final String urlAuthSession = "OSS_AUTH_URL_";
+    private final String accessKeyIdRoleSession = "EFUNBOX_AUDIO_OSS_AUTH_accessKeyIdRole";
+    private final String accessKeySecretRoleSession = "EFUNBOX_AUDIO_OSS_AUTH_accessKeySecretRole";
+    private final String securityTokenRoleSession = "EFUNBOX_AUDIO_OSS_AUTH_securityTokenRole";
+    private final String urlAuthSession = "EFUNBOX_AUDIO_OSS_AUTH_URL_";
 
     /**
      * 向阿里申请下一步操作的token

+ 2 - 0
src/main/java/cn/efunbox/audio/service/AdminService.java

@@ -15,4 +15,6 @@ public interface AdminService {
     public List<Admin> SearchByName(String name);
 
     public Admin Insert(Admin admin);
+
+    public Admin Update(Admin admin);
 }