From e6dd15a9e79f01695a2a184c91174c4bf25003cb Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Tue, 21 Nov 2023 13:07:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++++++ .../example/chat/controller/LoginController.java | 10 ++++++---- src/main/java/com/example/chat/dao/Login.java | 14 +++++++------- src/main/java/com/example/chat/dao/Test01.java | 10 ++++++---- .../chat/dao/mybatis/MybatisSingleton.java | 7 ++++--- .../com/example/chat/dao/redis/CodeRedis.java | 2 ++ .../com/example/chat/dao/redis/RedisUtil.java | 4 +++- .../com/example/chat/dao/redis/TokenRedis.java | 7 ++++--- src/main/java/com/example/chat/entity/Email.java | 4 ++++ src/main/java/com/example/chat/entity/Result.java | 12 ++++++++++-- src/main/java/com/example/chat/entity/User.java | 8 ++++++++ .../com/example/chat/jwt/InterceptorConfig.java | 3 +-- src/main/java/com/example/chat/jwt/JWTUtil.java | 15 ++++++++------- .../com/example/chat/jwt/TokenInterceptor.java | 2 +- .../java/com/example/chat/service/CodeCheck.java | 5 +++-- .../java/com/example/chat/service/CodeCreate.java | 2 +- .../com/example/chat/service/LoginService.java | 7 +++---- .../com/example/chat/service/mail/MailUtil.java | 4 ++-- src/main/resources/mapper/LoginMapper.xml | 2 +- src/main/resources/mybatis.xml | 4 ++-- 20 files changed, 82 insertions(+), 46 deletions(-) diff --git a/pom.xml b/pom.xml index 5ba951a..dba890c 100644 --- a/pom.xml +++ b/pom.xml @@ -57,6 +57,12 @@ 1.6.2 + + + org.springframework.boot + spring-boot-starter-websocket + + diff --git a/src/main/java/com/example/chat/controller/LoginController.java b/src/main/java/com/example/chat/controller/LoginController.java index 8d5e868..d5bc90d 100644 --- a/src/main/java/com/example/chat/controller/LoginController.java +++ b/src/main/java/com/example/chat/controller/LoginController.java @@ -21,10 +21,11 @@ public class LoginController { CodeCheck codeCheck; @Resource MailUtil mailUtil; + @PostMapping("/login") public Result Login(@RequestBody User user) throws IOException { Result result = new Result(); - if (login.LoginCheck(user)!=null) { + if (login.LoginCheck(user) != null) { result.setStatus(200); result.setResponseStr(login.LoginCheck(user)); @@ -39,7 +40,7 @@ public class LoginController { @PostMapping("/register") public Result Register(@RequestBody User user) throws IOException { System.out.println("被调用了"); - System.out.println("user是啥"+user); + System.out.println("user是啥" + user); Result result = new Result(); result.setStatus(login.Register(user)); return result; @@ -48,10 +49,11 @@ public class LoginController { @PostMapping("/checkCode") public boolean checkCode(@RequestBody Email email) { System.out.println(email); - return codeCheck.CheckCode(email.getEmail(),email.getCode()); + return codeCheck.CheckCode(email.getEmail(), email.getCode()); } + @PostMapping("/sendCode") - public void sendCode(@RequestBody Email email){ + public void sendCode(@RequestBody Email email) { System.out.println(email.getEmail()); mailUtil.sendMail(email.getEmail()); } diff --git a/src/main/java/com/example/chat/dao/Login.java b/src/main/java/com/example/chat/dao/Login.java index 7fcec4f..68b629c 100644 --- a/src/main/java/com/example/chat/dao/Login.java +++ b/src/main/java/com/example/chat/dao/Login.java @@ -13,8 +13,8 @@ public class Login implements UserTable { @Override public void addUser(User user) throws IOException { - SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); - sqlSession.insert("dao.Login.addUser",user); + SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); + sqlSession.insert("dao.Login.addUser", user); sqlSession.commit(); sqlSession.close(); } @@ -25,22 +25,22 @@ public class Login implements UserTable { } @Override - public void updateUser(User oldUser,User newUser) { + public void updateUser(User oldUser, User newUser) { } @Override public User getUser(User user) throws IOException { - SqlSession sqlSession= MybatisSingleton.getSqlSessionFactory().openSession(); - User returnUser=sqlSession.selectOne("dao.Login.getUser",user); + SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); + User returnUser = sqlSession.selectOne("dao.Login.getUser", user); sqlSession.close(); return returnUser; } @Override public User emailCheck(User user) throws IOException { - SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); - User returnUser=sqlSession.selectOne("dao.Login.emailCheck",user); + SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); + User returnUser = sqlSession.selectOne("dao.Login.emailCheck", user); sqlSession.close(); return returnUser; } diff --git a/src/main/java/com/example/chat/dao/Test01.java b/src/main/java/com/example/chat/dao/Test01.java index 9b1949a..f98c296 100644 --- a/src/main/java/com/example/chat/dao/Test01.java +++ b/src/main/java/com/example/chat/dao/Test01.java @@ -5,17 +5,19 @@ import com.example.chat.entity.User; import org.apache.ibatis.session.SqlSession; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; + import java.util.concurrent.TimeUnit; + @Component public class Test01 implements CommandLineRunner { @Override public void run(String... args) throws Exception { - while (true){ - SqlSession sqlSession= MybatisSingleton.getSqlSessionFactory().openSession(); - User user=sqlSession.selectOne("dao.Login.getUser","123"); - if (user!=null){ + while (true) { + SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); + User user = sqlSession.selectOne("dao.Login.getUser", "123"); + if (user != null) { System.out.println(user); } sqlSession.close(); diff --git a/src/main/java/com/example/chat/dao/mybatis/MybatisSingleton.java b/src/main/java/com/example/chat/dao/mybatis/MybatisSingleton.java index 366256d..343fccc 100644 --- a/src/main/java/com/example/chat/dao/mybatis/MybatisSingleton.java +++ b/src/main/java/com/example/chat/dao/mybatis/MybatisSingleton.java @@ -9,12 +9,13 @@ import java.io.IOException; public class MybatisSingleton { private static SqlSessionFactory sqlSessionFactory; - private MybatisSingleton(){ + private MybatisSingleton() { } + public static SqlSessionFactory getSqlSessionFactory() throws IOException { - if(sqlSessionFactory==null){ - sqlSessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis.xml")); + if (sqlSessionFactory == null) { + sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis.xml")); } return sqlSessionFactory; diff --git a/src/main/java/com/example/chat/dao/redis/CodeRedis.java b/src/main/java/com/example/chat/dao/redis/CodeRedis.java index 0e17455..e537b9c 100644 --- a/src/main/java/com/example/chat/dao/redis/CodeRedis.java +++ b/src/main/java/com/example/chat/dao/redis/CodeRedis.java @@ -19,10 +19,12 @@ public class CodeRedis implements RedisUtil { valueOperations.set(account, code, 60, TimeUnit.SECONDS); } } + @Override public String getRedis(String account) { return stringRedisTemplate.opsForValue().get(account); } + @Override public void delRedis(String account) { diff --git a/src/main/java/com/example/chat/dao/redis/RedisUtil.java b/src/main/java/com/example/chat/dao/redis/RedisUtil.java index 834c9c0..b590e30 100644 --- a/src/main/java/com/example/chat/dao/redis/RedisUtil.java +++ b/src/main/java/com/example/chat/dao/redis/RedisUtil.java @@ -4,8 +4,10 @@ import org.springframework.stereotype.Repository; @Repository public interface RedisUtil { - public abstract void addRedis(String key,String value); + public abstract void addRedis(String key, String value); + public abstract void delRedis(String key); + public abstract String getRedis(String key); } diff --git a/src/main/java/com/example/chat/dao/redis/TokenRedis.java b/src/main/java/com/example/chat/dao/redis/TokenRedis.java index 2ee2519..f3bf331 100644 --- a/src/main/java/com/example/chat/dao/redis/TokenRedis.java +++ b/src/main/java/com/example/chat/dao/redis/TokenRedis.java @@ -8,14 +8,15 @@ import javax.annotation.Resource; import java.util.concurrent.TimeUnit; @Repository -public class TokenRedis implements RedisUtil{ +public class TokenRedis implements RedisUtil { @Resource StringRedisTemplate stringRedisTemplate; + @Override public void addRedis(String key, String value) { - ValueOperations valueOperations=stringRedisTemplate.opsForValue(); - valueOperations.set(key,value,60, TimeUnit.MINUTES); + ValueOperations valueOperations = stringRedisTemplate.opsForValue(); + valueOperations.set(key, value, 60, TimeUnit.MINUTES); } @Override diff --git a/src/main/java/com/example/chat/entity/Email.java b/src/main/java/com/example/chat/entity/Email.java index 6e97a66..de0c266 100644 --- a/src/main/java/com/example/chat/entity/Email.java +++ b/src/main/java/com/example/chat/entity/Email.java @@ -14,6 +14,7 @@ public class Email { /** * 获取 + * * @return email */ public String getEmail() { @@ -22,6 +23,7 @@ public class Email { /** * 设置 + * * @param email */ public void setEmail(String email) { @@ -30,6 +32,7 @@ public class Email { /** * 获取 + * * @return code */ public String getCode() { @@ -38,6 +41,7 @@ public class Email { /** * 设置 + * * @param code */ public void setCode(String code) { diff --git a/src/main/java/com/example/chat/entity/Result.java b/src/main/java/com/example/chat/entity/Result.java index 923838a..4dc2489 100644 --- a/src/main/java/com/example/chat/entity/Result.java +++ b/src/main/java/com/example/chat/entity/Result.java @@ -13,11 +13,14 @@ public class Result { this.responseStr = responseStr; this.data = data; } - public Result(int status){ - this.status=status; + + public Result(int status) { + this.status = status; } + /** * 获取 + * * @return status */ public int getStatus() { @@ -26,6 +29,7 @@ public class Result { /** * 设置 + * * @param status */ public void setStatus(int status) { @@ -34,6 +38,7 @@ public class Result { /** * 获取 + * * @return responseStr */ public String getResponseStr() { @@ -42,6 +47,7 @@ public class Result { /** * 设置 + * * @param responseStr */ public void setResponseStr(String responseStr) { @@ -50,6 +56,7 @@ public class Result { /** * 获取 + * * @return data */ public Object getData() { @@ -58,6 +65,7 @@ public class Result { /** * 设置 + * * @param data */ public void setData(Object data) { diff --git a/src/main/java/com/example/chat/entity/User.java b/src/main/java/com/example/chat/entity/User.java index d02cc6a..7b7dc81 100644 --- a/src/main/java/com/example/chat/entity/User.java +++ b/src/main/java/com/example/chat/entity/User.java @@ -20,6 +20,7 @@ public class User { /** * 获取 + * * @return username */ public String getUsername() { @@ -28,6 +29,7 @@ public class User { /** * 设置 + * * @param username */ public void setUsername(String username) { @@ -36,6 +38,7 @@ public class User { /** * 获取 + * * @return password */ public String getPassword() { @@ -44,6 +47,7 @@ public class User { /** * 设置 + * * @param password */ public void setPassword(String password) { @@ -52,6 +56,7 @@ public class User { /** * 获取 + * * @return account */ public String getAccount() { @@ -60,6 +65,7 @@ public class User { /** * 设置 + * * @param account */ public void setAccount(String account) { @@ -68,6 +74,7 @@ public class User { /** * 获取 + * * @return email */ public String getEmail() { @@ -76,6 +83,7 @@ public class User { /** * 设置 + * * @param email */ public void setEmail(String email) { diff --git a/src/main/java/com/example/chat/jwt/InterceptorConfig.java b/src/main/java/com/example/chat/jwt/InterceptorConfig.java index b2a1580..28715e5 100644 --- a/src/main/java/com/example/chat/jwt/InterceptorConfig.java +++ b/src/main/java/com/example/chat/jwt/InterceptorConfig.java @@ -32,8 +32,7 @@ public class InterceptorConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { - registry.addMapping("/**") - .allowCredentials(true)//允许携带cookie + registry.addMapping("/**").allowCredentials(true)//允许携带cookie .allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH", "OPTIONS", "HEAD")//允许访问的方法 .allowedOriginPatterns("*")//允许的跨域访问地址 .maxAge(3600 * 24);//options缓存时间 diff --git a/src/main/java/com/example/chat/jwt/JWTUtil.java b/src/main/java/com/example/chat/jwt/JWTUtil.java index 0968b7f..5a487f2 100644 --- a/src/main/java/com/example/chat/jwt/JWTUtil.java +++ b/src/main/java/com/example/chat/jwt/JWTUtil.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Component; public class JWTUtil { private static final String tokenPassword = "uziCjb"; + public static String sign(String username) {//用用户名作为被加密的对象 String token; @@ -18,17 +19,17 @@ public class JWTUtil { .sign(Algorithm.HMAC256(tokenPassword)); return token;//返回加密后的token } - public static String verify(String token){ - JWTVerifier jwtVerifier=JWT.require(Algorithm.HMAC256(tokenPassword)).withIssuer("llh").build();//构建一个jwt解码器 - DecodedJWT jwtToken=jwtVerifier.verify(token);//解码 - if(token.isEmpty()){//若token为空则返回false拦截 + + public static String verify(String token) { + JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(tokenPassword)).withIssuer("llh").build();//构建一个jwt解码器 + DecodedJWT jwtToken = jwtVerifier.verify(token);//解码 + if (token.isEmpty()) {//若token为空则返回false拦截 return null; - } - else { + } else { System.out.println("认证通过:"); System.out.println("issuer: " + jwtToken.getIssuer()); System.out.println("username: " + jwtToken.getClaim("username").asString()); return jwtToken.getClaim("username").asString(); } } -} \ No newline at end of file +} diff --git a/src/main/java/com/example/chat/jwt/TokenInterceptor.java b/src/main/java/com/example/chat/jwt/TokenInterceptor.java index 9b2735c..16a3651 100644 --- a/src/main/java/com/example/chat/jwt/TokenInterceptor.java +++ b/src/main/java/com/example/chat/jwt/TokenInterceptor.java @@ -34,7 +34,7 @@ public class TokenInterceptor implements HandlerInterceptor { if (token != null) { String verifyToken = JWTUtil.verify(token); - if (redisUtil.getRedis(verifyToken)!=null) { + if (redisUtil.getRedis(verifyToken) != null) { response.setStatus(200);//设置状态码为正常,即通过登录验证 System.out.println("通过拦截器"); return true; diff --git a/src/main/java/com/example/chat/service/CodeCheck.java b/src/main/java/com/example/chat/service/CodeCheck.java index 4f2cd5b..896d886 100644 --- a/src/main/java/com/example/chat/service/CodeCheck.java +++ b/src/main/java/com/example/chat/service/CodeCheck.java @@ -8,9 +8,10 @@ import javax.annotation.Resource; @Service public class CodeCheck { - @Resource(name="codeRedis") + @Resource(name = "codeRedis") RedisUtil codeRedis; - public boolean CheckCode(String account,String code){ + + public boolean CheckCode(String account, String code) { return code.equals(codeRedis.getRedis(account)); } } diff --git a/src/main/java/com/example/chat/service/CodeCreate.java b/src/main/java/com/example/chat/service/CodeCreate.java index 20ec0c0..84ae1c0 100644 --- a/src/main/java/com/example/chat/service/CodeCreate.java +++ b/src/main/java/com/example/chat/service/CodeCreate.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Service; @Service public class CodeCreate { - public String CreateCode(){ + public String CreateCode() { String[] letters = new String[]{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" diff --git a/src/main/java/com/example/chat/service/LoginService.java b/src/main/java/com/example/chat/service/LoginService.java index 49c6495..4341c0b 100644 --- a/src/main/java/com/example/chat/service/LoginService.java +++ b/src/main/java/com/example/chat/service/LoginService.java @@ -27,12 +27,11 @@ public class LoginService { if (user.getPassword().equals(requestUser.getPassword())) { - String token= JWTUtil.sign(user.getAccount()); - redisUtil.addRedis(user.getAccount(),token); + String token = JWTUtil.sign(user.getAccount()); + redisUtil.addRedis(user.getAccount(), token); return token; } else return null; - }else - { + } else { return null; } } diff --git a/src/main/java/com/example/chat/service/mail/MailUtil.java b/src/main/java/com/example/chat/service/mail/MailUtil.java index 55220ed..28e7884 100644 --- a/src/main/java/com/example/chat/service/mail/MailUtil.java +++ b/src/main/java/com/example/chat/service/mail/MailUtil.java @@ -17,7 +17,7 @@ import java.util.Properties; public class MailUtil { @Resource CodeCreate codeCreate; - @Resource(name ="codeRedis") + @Resource(name = "codeRedis") RedisUtil redisUtil; public void sendMail(String receive) { @@ -44,7 +44,7 @@ public class MailUtil { Message message = createSimpleMail(session, receive, code); transport.sendMessage(message, message.getAllRecipients()); transport.close(); - redisUtil.addRedis(receive,code); + redisUtil.addRedis(receive, code); } catch (GeneralSecurityException | MessagingException e) { throw new RuntimeException(e); } diff --git a/src/main/resources/mapper/LoginMapper.xml b/src/main/resources/mapper/LoginMapper.xml index 6095a59..1b73614 100644 --- a/src/main/resources/mapper/LoginMapper.xml +++ b/src/main/resources/mapper/LoginMapper.xml @@ -23,7 +23,7 @@ update user - set password=#{password} and username = #{username} and email=#{email} + set password=#{password} and username = #{username} and email = #{email} where account = #{account}; diff --git a/src/main/resources/mybatis.xml b/src/main/resources/mybatis.xml index e9fea9b..92a66cd 100644 --- a/src/main/resources/mybatis.xml +++ b/src/main/resources/mybatis.xml @@ -21,6 +21,6 @@ --> - + - \ No newline at end of file +