pom.xml
@@ -94,7 +94,7 @@ <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 工程主入口--> <mainClass>com.yckj.Application</mainClass> <mainClass>com.whyc.Application</mainClass> </configuration> </plugin> </plugins> src/main/java/com/whyc/Application.java
File was renamed from src/main/java/com/yckj/Application.java @@ -1,10 +1,8 @@ package com.yckj; package com.whyc; import com.spring4all.swagger.EnableSwagger2Doc; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; @@ -19,7 +17,7 @@ @EnableWebMvc @EnableSwagger2 @EnableSwagger2Doc @ServletComponentScan(basePackages = "com.yckj.filter") @ServletComponentScan(basePackages = "com.whyc.filter") public class Application extends WebMvcConfigurerAdapter { public static void main(String[] args) { src/main/java/com/whyc/config/MybatisPlusConfig.java
File was renamed from src/main/java/com/yckj/config/MybatisPlusConfig.java @@ -1,7 +1,7 @@ package com.yckj.config; package com.whyc.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.yckj.injector.CustomSqlInjector; import com.whyc.injector.CustomSqlInjector; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; src/main/java/com/whyc/config/WebConfig.java
New file @@ -0,0 +1,28 @@ //package com.yckj.config; // //import com.fasterxml.jackson.core.filter.TokenFilter; //import com.yckj.filter.LoginFilter; //import org.springframework.boot.web.servlet.FilterRegistrationBean; //import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Configuration; // //import javax.servlet.DispatcherType; // //@Configuration //public class WebConfig { // // @Bean // FilterRegistrationBean<LoginFilter> loginFilter() { // FilterRegistrationBean<LoginFilter> filterReg = new FilterRegistrationBean(new LoginFilter()); // //优先级 // filterReg.setOrder(1); // filterReg.setDispatcherTypes(DispatcherType.REQUEST); // //匹配路径,过滤接口请求 // filterReg.addUrlPatterns("*.do"); // //排除静态资源 // filterReg.addInitParameter("exclusions","*.css,*.js"); // // return filterReg; // } // //} src/main/java/com/whyc/controller/RoleController.java
New file @@ -0,0 +1,21 @@ package com.whyc.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RequestMapping("role") @RestController @Slf4j @Api(value ="role value",tags = "角色") public class RoleController { @GetMapping @ApiOperation(value = "查询") public void get(){ } } src/main/java/com/whyc/controller/UserController.java
File was renamed from src/main/java/com/yckj/controller/UserController.java @@ -1,15 +1,14 @@ package com.yckj.controller; package com.whyc.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yckj.pojo.User; import com.yckj.service.UserService; import com.whyc.pojo.User; import com.whyc.service.UserService; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; src/main/java/com/whyc/dto/UserLoginInfo.java
File was renamed from src/main/java/com/yckj/dto/UserLoginInfo.java @@ -1,4 +1,4 @@ package com.yckj.dto; package com.whyc.dto; /** * 用户登录后保存的信息 src/main/java/com/whyc/filter/CrossDomainFilter.java
File was renamed from src/main/java/com/yckj/filter/CrossDomainFilter.java @@ -1,4 +1,4 @@ package com.yckj.filter; package com.whyc.filter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; src/main/java/com/whyc/filter/LoginFilter.java
New file @@ -0,0 +1,58 @@ package com.whyc.filter; import com.whyc.pojo.User; import lombok.extern.slf4j.Slf4j; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebInitParam; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.PrintWriter; @Slf4j @WebFilter(filterName = "loginFilter",urlPatterns = "/*",initParams = { @WebInitParam(name = "exclusions",value = "*.css,*.js") }) //@WebInitParam(name = "exclusions",value = "*.css,*.js") public class LoginFilter implements Filter { private String exclusions = ""; public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest)req; String URL=request.getRequestURI(); String[] uri=request.getRequestURI().split("/"); String source=""; if(uri.length>0) { source = uri[uri.length - 1]; } String suffix = source.substring(source.indexOf(".")+1); User user=(User)request.getSession().getAttribute("user"); //不拦截swagger的资源请求,以及登录请求 if(URL.indexOf("swagger-resources")>-1 ||URL.indexOf("swagger-ui")>-1 ||URL.indexOf("v2/api-docs")>-1||URL.indexOf("login")>-1){ chain.doFilter(req,resp); } //不拦截静态资源css/js else if(exclusions.indexOf(suffix)>-1){ chain.doFilter(req,resp); } else if(user!=null){ chain.doFilter(req, resp); }else{ PrintWriter out=resp.getWriter(); out.print("<script charset='UTF-8'>window.location.href='index.html'</script>"); } } public void init(FilterConfig config) throws ServletException { exclusions =config.getInitParameter("exclusions"); } } src/main/java/com/whyc/injector/CustomSqlInjector.java
File was renamed from src/main/java/com/yckj/injector/CustomSqlInjector.java @@ -1,4 +1,4 @@ package com.yckj.injector; package com.whyc.injector; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; src/main/java/com/whyc/listener/LoginSessionListener.java
src/main/java/com/whyc/listener/Sessionlister.java
src/main/java/com/whyc/mapper/CustomMapper.java
File was renamed from src/main/java/com/yckj/mapper/CustomMapper.java @@ -1,4 +1,4 @@ package com.yckj.mapper; package com.whyc.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.Collection; src/main/java/com/whyc/mapper/UserMapper.java
New file @@ -0,0 +1,7 @@ package com.whyc.mapper; import com.whyc.pojo.User; public interface UserMapper extends CustomMapper<User> { } src/main/java/com/whyc/pojo/Menu.java
New file @@ -0,0 +1,45 @@ package com.whyc.pojo; /** * 用户菜单 */ public class Menu { private Integer id; private String name; /**级别:1级,2级菜单...*/ private String level; /**排序*/ private Integer order; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLevel() { return level; } public void setLevel(String level) { this.level = level; } public Integer getOrder() { return order; } public void setOrder(Integer order) { this.order = order; } } src/main/java/com/whyc/pojo/Privilege.java
New file @@ -0,0 +1,26 @@ package com.whyc.pojo; /** * 权限 */ public class Privilege { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } src/main/java/com/whyc/pojo/Role.java
New file @@ -0,0 +1,25 @@ package com.whyc.pojo; /** * 角色 */ public class Role { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } src/main/java/com/whyc/pojo/RoleMenu.java
New file @@ -0,0 +1,34 @@ package com.whyc.pojo; /** * 角色菜单 */ public class RoleMenu { private Integer id; private Integer roleId; private Integer menuId; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getRoleId() { return roleId; } public void setRoleId(Integer roleId) { this.roleId = roleId; } public Integer getMenuId() { return menuId; } public void setMenuId(Integer menuId) { this.menuId = menuId; } } src/main/java/com/whyc/pojo/RolePrivilege.java
New file @@ -0,0 +1,35 @@ package com.whyc.pojo; /** * 角色对应权限 */ public class RolePrivilege { private Integer id; private Integer roleId; private Integer privilegeId; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getRoleId() { return roleId; } public void setRoleId(Integer roleId) { this.roleId = roleId; } public Integer getPrivilegeId() { return privilegeId; } public void setPrivilegeId(Integer privilegeId) { this.privilegeId = privilegeId; } } src/main/java/com/whyc/pojo/User.java
File was renamed from src/main/java/com/yckj/pojo/User.java @@ -1,13 +1,10 @@ package com.yckj.pojo; package com.whyc.pojo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.Date; public class User { private Integer id; private String username; private String password; src/main/java/com/whyc/pojo/UserRole.java
New file @@ -0,0 +1,25 @@ package com.whyc.pojo; /** * 用户角色表 */ public class UserRole { private User user; private Role role; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public Role getRole() { return role; } public void setRole(Role role) { this.role = role; } } src/main/java/com/whyc/service/UserService.java
File was renamed from src/main/java/com/yckj/service/UserService.java @@ -1,29 +1,21 @@ package com.yckj.service; package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ArrayUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sun.deploy.util.ArrayUtil; import com.yckj.dto.UserLoginInfo; import com.yckj.mapper.UserMapper; import com.yckj.pojo.User; import com.whyc.dto.UserLoginInfo; import com.whyc.mapper.UserMapper; import com.whyc.pojo.User; import lombok.extern.slf4j.Slf4j; import org.assertj.core.util.Arrays; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -87,16 +79,16 @@ //servletContext中存储用户信息 ServletContext servletContext = request.getServletContext(); List<UserLoginInfo> users = (List<UserLoginInfo>) servletContext.getAttribute("users"); if(users==null){ Map<String,UserLoginInfo> userMap = (Map<String, UserLoginInfo>) servletContext.getAttribute("users"); if(userMap==null){ log.info("servletContext首次存值"); users = new LinkedList<>(); users.add(new UserLoginInfo(username,timestamp)); servletContext.setAttribute("users",users); userMap = new HashMap<>(); userMap.put(username,new UserLoginInfo(username,timestamp)); servletContext.setAttribute("users",userMap); }else{ log.info("servletContext已经有值"); users.add(new UserLoginInfo(username,timestamp)); servletContext.setAttribute("users",users); userMap.put(username,new UserLoginInfo(username,timestamp)); servletContext.setAttribute("users",userMap); } } return flag; @@ -111,16 +103,18 @@ User user = (User) session.getAttribute("user"); Long timestamp = (Long) session.getAttribute("timestamp"); List<UserLoginInfo> users = (List<UserLoginInfo>) servletContext.getAttribute("users"); if(user==null){ return false; } Map<String,UserLoginInfo> userMap = (Map<String, UserLoginInfo>) servletContext.getAttribute("users"); for (UserLoginInfo temp:users){ if(temp.getUsername().equals(user.getUsername()) && temp.getTimestamp()==timestamp){ UserLoginInfo userLoginInfo = userMap.get(user.getUsername()); if(userLoginInfo.getUsername().equals(user.getUsername()) && userLoginInfo.getTimestamp().compareTo(timestamp)==0){ //说明没有从其他地方登录 }else{ //说明从其他地方登录了,当前用户的session清除 flag = true; session.invalidate(); } }else{ //说明从其他地方登录了,当前用户的session清除 flag = true; session.invalidate(); } return flag; } src/main/java/com/whyc/swagger/SwaggerConfig.java
File was renamed from src/main/java/com/yckj/swagger/SwaggerConfig.java @@ -1,4 +1,4 @@ package com.yckj.swagger; package com.whyc.swagger; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; @@ -19,7 +19,7 @@ @Configuration @EnableSwagger2 @ConditionalOnProperty(name = "swagger.enable",havingValue = "true") @ComponentScan(basePackages= {"com.yckj.controller"}) @ComponentScan(basePackages= {"com.whyc.controller"}) @EnableWebMvc public class SwaggerConfig { src/main/java/com/whyc/swagger/webAppConfig.java
File was renamed from src/main/java/com/yckj/swagger/webAppConfig.java @@ -1,4 +1,4 @@ package com.yckj.swagger; package com.whyc.swagger; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; src/main/java/com/whyc/util/ActionUtil.java
File was renamed from src/main/java/com/yckj/util/ActionUtil.java @@ -1,4 +1,4 @@ package com.yckj.util; package com.whyc.util; import com.google.gson.Gson; import com.google.gson.GsonBuilder; src/main/java/com/whyc/util/DateUtil.java
File was renamed from src/main/java/com/yckj/util/DateUtil.java @@ -1,4 +1,4 @@ package com.yckj.util; package com.whyc.util; import java.text.SimpleDateFormat; src/main/java/com/yckj/filter/LoginFilter.java
File was deleted src/main/java/com/yckj/mapper/UserMapper.java
File was deleted src/main/resources/META-INF/MANIFEST.MF
@@ -1,3 +1,3 @@ Manifest-Version: 1.0 Main-Class: com.yckj.Application Main-Class: com.whyc.Application src/main/resources/mapper/UserMapper.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yckj.mapper.UserMapper" > <mapper namespace="com.whyc.mapper.UserMapper" > </mapper> src/main/resources/mapper/ZMapper.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yckj.mapper" > <mapper namespace="com.whyc.mapper" > </mapper>