diff --git a/SpringBootShiroRememberMe/.classpath b/SpringBootShiroRememberMe/.classpath new file mode 100644 index 0000000..16c89cc --- /dev/null +++ b/SpringBootShiroRememberMe/.classpath @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SpringBootShiroRememberMe/.project b/SpringBootShiroRememberMe/.project new file mode 100644 index 0000000..77a7d00 --- /dev/null +++ b/SpringBootShiroRememberMe/.project @@ -0,0 +1,23 @@ + + + SpringBootShiroRememberMe + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/SpringBootShiroRememberMe/.settings/org.eclipse.core.resources.prefs b/SpringBootShiroRememberMe/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..02595f7 --- /dev/null +++ b/SpringBootShiroRememberMe/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/main/resources/application.properties=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/SpringBootShiroRememberMe/.settings/org.eclipse.jdt.core.prefs b/SpringBootShiroRememberMe/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d59e09c --- /dev/null +++ b/SpringBootShiroRememberMe/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/SpringBootShiroRememberMe/.settings/org.eclipse.m2e.core.prefs b/SpringBootShiroRememberMe/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/SpringBootShiroRememberMe/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/SpringBootShiroRememberMe/pom.xml b/SpringBootShiroRememberMe/pom.xml new file mode 100644 index 0000000..edde0da --- /dev/null +++ b/SpringBootShiroRememberMe/pom.xml @@ -0,0 +1,59 @@ + + 4.0.0 + + zz + SpringBoot2 + 0.0.1-SNAPSHOT + + SpringBootShiroRememberMe + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + true + + + + + mysql + mysql-connector-java + 8.0.15 + + + + + org.apache.shiro + shiro-spring + 1.4.0 + + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + + alimaven + aliyun maven + http://maven.aliyun.com/nexus/content/groups/public/ + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + \ No newline at end of file diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/App.java b/SpringBootShiroRememberMe/src/main/java/com/zz/App.java new file mode 100644 index 0000000..78a2e87 --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/App.java @@ -0,0 +1,21 @@ +package com.zz; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; +/** + * 右键--》run as application 运行正启动类的main方法,就可以启动这个springboot项目。 +SpringBoot 自带了 tomcat, 运行这个main方法 的时候,会同时启动tomcat + * @author jiyu + * + */ +@SpringBootApplication +@EnableScheduling +public class App { + + public static void main(String[] args) { + // TODO Auto-generated method stub + SpringApplication.run(App.class, args); + } + +} diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/config/ShiroConfig.java b/SpringBootShiroRememberMe/src/main/java/com/zz/config/ShiroConfig.java new file mode 100644 index 0000000..b7546ff --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/config/ShiroConfig.java @@ -0,0 +1,86 @@ +package com.zz.config; + +import java.util.LinkedHashMap; + +import org.apache.shiro.codec.Base64; +import org.apache.shiro.mgt.SecurityManager; +import org.apache.shiro.spring.LifecycleBeanPostProcessor; +import org.apache.shiro.spring.web.ShiroFilterFactoryBean; +import org.apache.shiro.web.mgt.CookieRememberMeManager; +import org.apache.shiro.web.mgt.DefaultWebSecurityManager; +import org.apache.shiro.web.servlet.SimpleCookie; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + + +@Configuration +public class ShiroConfig { + + @Bean + public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) { + ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); + shiroFilterFactoryBean.setSecurityManager(securityManager); + shiroFilterFactoryBean.setLoginUrl("/login"); + shiroFilterFactoryBean.setSuccessUrl("/index"); + shiroFilterFactoryBean.setUnauthorizedUrl("/403"); + + LinkedHashMap filterChainDefinitionMap = new LinkedHashMap<>(); + + filterChainDefinitionMap.put("/css/**", "anon"); + filterChainDefinitionMap.put("/js/**", "anon"); + filterChainDefinitionMap.put("/fonts/**", "anon"); + filterChainDefinitionMap.put("/img/**", "anon"); + filterChainDefinitionMap.put("/druid/**", "anon"); + filterChainDefinitionMap.put("/logout", "logout"); + filterChainDefinitionMap.put("/", "anon"); + filterChainDefinitionMap.put("/**", "user"); + + shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); + + return shiroFilterFactoryBean; + } + + @Bean + public SecurityManager securityManager(){ + DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); + securityManager.setRealm(shiroRealm()); + securityManager.setRememberMeManager(rememberMeManager()); + return securityManager; + } + + @Bean(name = "lifecycleBeanPostProcessor") + public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() { + return new LifecycleBeanPostProcessor(); + } + + @Bean + public ShiroRealm shiroRealm(){ + ShiroRealm shiroRealm = new ShiroRealm(); + return shiroRealm; + } + + /** + * cookie对象 + * @return + */ + public SimpleCookie rememberMeCookie() { + // 设置cookie名称,对应login.html页面的 + SimpleCookie cookie = new SimpleCookie("rememberMe"); + // 设置cookie的过期时间,单位为秒,这里为一天 + cookie.setMaxAge(86400); + return cookie; + } + + /** + * cookie管理对象 + * @return + */ + public CookieRememberMeManager rememberMeManager() { + CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager(); + cookieRememberMeManager.setCookie(rememberMeCookie()); + // rememberMe cookie加密的密钥 + cookieRememberMeManager.setCipherKey(Base64.decode("3AvVhmFLUs0KTA3Kprsdag==")); + return cookieRememberMeManager; + } + +} \ No newline at end of file diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/config/ShiroRealm.java b/SpringBootShiroRememberMe/src/main/java/com/zz/config/ShiroRealm.java new file mode 100644 index 0000000..50de722 --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/config/ShiroRealm.java @@ -0,0 +1,61 @@ +package com.zz.config; + +import javax.annotation.Resource; + +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.IncorrectCredentialsException; +import org.apache.shiro.authc.LockedAccountException; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authc.UnknownAccountException; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.springframework.beans.factory.annotation.Autowired; + +import com.zz.entity.User; +import com.zz.repository.UserRepository; + +//import com.springboot.dao.UserMapper; +//import com.springboot.pojo.User; + +public class ShiroRealm extends AuthorizingRealm { + + @Resource + private UserRepository userRepository; + + /** + * 获取用户角色和权限 + */ + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principal) { + return null; + } + + /** + * 登录认证 + */ + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { + String userName = (String) token.getPrincipal(); + String password = new String((char[]) token.getCredentials()); + + System.out.println("用户" + userName + "认证-----ShiroRealm.doGetAuthenticationInfo"); +// User user = userMapper.findByUserName(userName); + User user = userRepository.findByName(userName); +// User user=new User(); + if (user == null) { + throw new UnknownAccountException("用户名错误!"); + } + if (!password.equals(user.getPwd())) { + throw new IncorrectCredentialsException("密码错误!"); + } + if (user.getStatus().equals("0")) { + throw new LockedAccountException("账号已被锁定,请联系管理员!"); + } + SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, password, getName()); + return info; + } + +} \ No newline at end of file diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/controller/LoginController.java b/SpringBootShiroRememberMe/src/main/java/com/zz/controller/LoginController.java new file mode 100644 index 0000000..b971264 --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/controller/LoginController.java @@ -0,0 +1,67 @@ +package com.zz.controller; + +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.IncorrectCredentialsException; +import org.apache.shiro.authc.LockedAccountException; +import org.apache.shiro.authc.UnknownAccountException; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.zz.entity.User; +import com.zz.pojo.ResponseBo; +import com.zz.util.MD5Utils; + + +@Controller +public class LoginController { + + @GetMapping("/login") + public String login() { + return "login1.html"; + } + + @PostMapping("/login") + @ResponseBody + public ResponseBo login(String username, String password, Boolean rememberMe) { + password = MD5Utils.encrypt(username, password); + UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe); + Subject subject = SecurityUtils.getSubject(); + try { + subject.login(token); + return ResponseBo.ok(); + } catch (UnknownAccountException e) { + return ResponseBo.error(e.getMessage()); + } catch (IncorrectCredentialsException e) { + return ResponseBo.error(e.getMessage()); + } catch (LockedAccountException e) { + return ResponseBo.error(e.getMessage()); + } catch (AuthenticationException e) { + return ResponseBo.error("认证失败!"); + } + } + + @RequestMapping("/") + public String redirectIndex() { + return "redirect:/index"; + } + + @RequestMapping("/index") + public String index(Model model) { + User user = (User) SecurityUtils.getSubject().getPrincipal(); + model.addAttribute("user", user); + return "index1.html"; + } + + @PostMapping("/getlogin") + @ResponseBody + public User getLoginUser(){ + return (User) SecurityUtils.getSubject().getPrincipal(); + } +} \ No newline at end of file diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/entity/User.java b/SpringBootShiroRememberMe/src/main/java/com/zz/entity/User.java new file mode 100644 index 0000000..051af98 --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/entity/User.java @@ -0,0 +1,55 @@ +package com.zz.entity; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class User implements Serializable{ + @Id + private String id; + private String name; + private String pwd; + private String sex; + private int age; + private String status; + + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getPwd() { + return pwd; + } + public void setPwd(String pwd) { + this.pwd = pwd; + } + public String getSex() { + return sex; + } + public void setSex(String sex) { + this.sex = sex; + } + public int getAge() { + return age; + } + public void setAge(int age) { + this.age = age; + } + +} diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/pojo/ResponseBo.java b/SpringBootShiroRememberMe/src/main/java/com/zz/pojo/ResponseBo.java new file mode 100644 index 0000000..380b72a --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/pojo/ResponseBo.java @@ -0,0 +1,50 @@ +package com.zz.pojo; + +import java.util.HashMap; +import java.util.Map; + +public class ResponseBo extends HashMap{ + private static final long serialVersionUID = 1L; + + public ResponseBo() { + put("code", 0); + put("msg", "操作成功"); + } + + public static ResponseBo error() { + return error(1, "操作失败"); + } + + public static ResponseBo error(String msg) { + return error(500, msg); + } + + public static ResponseBo error(int code, String msg) { + ResponseBo ResponseBo = new ResponseBo(); + ResponseBo.put("code", code); + ResponseBo.put("msg", msg); + return ResponseBo; + } + + public static ResponseBo ok(String msg) { + ResponseBo ResponseBo = new ResponseBo(); + ResponseBo.put("msg", msg); + return ResponseBo; + } + + public static ResponseBo ok(Map map) { + ResponseBo ResponseBo = new ResponseBo(); + ResponseBo.putAll(map); + return ResponseBo; + } + + public static ResponseBo ok() { + return new ResponseBo(); + } + + @Override + public ResponseBo put(String key, Object value) { + super.put(key, value); + return this; + } +} diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/repository/UserRepository.java b/SpringBootShiroRememberMe/src/main/java/com/zz/repository/UserRepository.java new file mode 100644 index 0000000..a35556e --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/repository/UserRepository.java @@ -0,0 +1,14 @@ +package com.zz.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.CrudRepository; + +import com.zz.entity.User; + +public interface UserRepository extends JpaRepository{ + + public User findByNameAndPwd(String name,String pwd); + public User findByName(String name); + + +} diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/service/UserService.java b/SpringBootShiroRememberMe/src/main/java/com/zz/service/UserService.java new file mode 100644 index 0000000..9d3dc93 --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/service/UserService.java @@ -0,0 +1,29 @@ +package com.zz.service; + +import javax.annotation.Resource; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import com.zz.entity.User; +import com.zz.repository.UserRepository; + +@Service +public class UserService { + @Resource + UserRepository userRepository; + + + public User findByNameAndPwd(String name,String pwd){ + return userRepository.findByNameAndPwd(name, pwd); + }; + + + public Page findAll(String page, String limit){ + Pageable pageable = PageRequest.of(Integer.parseInt(page), Integer.parseInt(limit)); + Page pageinfo=userRepository.findAll(pageable); + return pageinfo; + } +} diff --git a/SpringBootShiroRememberMe/src/main/java/com/zz/util/MD5Utils.java b/SpringBootShiroRememberMe/src/main/java/com/zz/util/MD5Utils.java new file mode 100644 index 0000000..8189e55 --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/java/com/zz/util/MD5Utils.java @@ -0,0 +1,28 @@ +package com.zz.util; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.apache.shiro.util.ByteSource; + +public class MD5Utils { + private static final String SALT = "mrbird"; + + private static final String ALGORITH_NAME = "md5"; + + private static final int HASH_ITERATIONS = 2; + + public static String encrypt(String pswd) { + String newPassword = new SimpleHash(ALGORITH_NAME, pswd, ByteSource.Util.bytes(SALT), HASH_ITERATIONS).toHex(); + return newPassword; + } + + public static String encrypt(String username, String pswd) { + String newPassword = new SimpleHash(ALGORITH_NAME, pswd, ByteSource.Util.bytes(username + SALT), + HASH_ITERATIONS).toHex(); + return newPassword; + } + public static void main(String[] args) { + + System.out.println(MD5Utils.encrypt("test", "123456")); + } + +} \ No newline at end of file diff --git a/SpringBootShiroRememberMe/src/main/resources/application.properties b/SpringBootShiroRememberMe/src/main/resources/application.properties new file mode 100644 index 0000000..e318f00 --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/resources/application.properties @@ -0,0 +1,12 @@ +server.port=9087 +server.servlet.context-path=/r + +# 数据库的信息 +spring.datasource.url = jdbc:mysql://localhost:3306/java10?useSSL=false&serverTimezone=Asia/Shanghai +spring.datasource.username = root +spring.datasource.password = Java20190713*yy +spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver +spring.jpa.database = MYSQL +# spring.jpa.show-sql = true 表示会在控制台打印执行的sql语句 +spring.jpa.show-sql = true +spring.jpa.hibernate.ddl-auto = update \ No newline at end of file diff --git a/SpringBootShiroRememberMe/src/main/resources/static/index1.html b/SpringBootShiroRememberMe/src/main/resources/static/index1.html new file mode 100644 index 0000000..d07dfb1 --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/resources/static/index1.html @@ -0,0 +1,54 @@ + + + + Bootstrap 实例 + + + + + + + + + +
+

基础表格

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FirstnameLastnameEmail
JohnDoejohn@example.com
MaryMoemary@example.com
JulyDooleyjuly@example.com
+
+ + + \ No newline at end of file diff --git a/SpringBootShiroRememberMe/src/main/resources/static/login1.html b/SpringBootShiroRememberMe/src/main/resources/static/login1.html new file mode 100644 index 0000000..51dd64e --- /dev/null +++ b/SpringBootShiroRememberMe/src/main/resources/static/login1.html @@ -0,0 +1,47 @@ + + + + Bootstrap 实例 + + + + + + + + + +
+

堆叠表单

+
+
+ + +
+
+ + +
+
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/SpringBootShiroRememberMe/target/classes/META-INF/maven/zz/SpringBootShiroRememberMe/pom.properties b/SpringBootShiroRememberMe/target/classes/META-INF/maven/zz/SpringBootShiroRememberMe/pom.properties new file mode 100644 index 0000000..8036acf --- /dev/null +++ b/SpringBootShiroRememberMe/target/classes/META-INF/maven/zz/SpringBootShiroRememberMe/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Fri Aug 23 21:28:18 CST 2019 +version=0.0.1-SNAPSHOT +groupId=zz +m2e.projectName=SpringBootShiroRememberMe +m2e.projectLocation=C\:\\bsea\\wp\\2019\\07\\04\\SpringBoot2\\SpringBootShiroRememberMe +artifactId=SpringBootShiroRememberMe diff --git a/SpringBootShiroRememberMe/target/classes/META-INF/maven/zz/SpringBootShiroRememberMe/pom.xml b/SpringBootShiroRememberMe/target/classes/META-INF/maven/zz/SpringBootShiroRememberMe/pom.xml new file mode 100644 index 0000000..edde0da --- /dev/null +++ b/SpringBootShiroRememberMe/target/classes/META-INF/maven/zz/SpringBootShiroRememberMe/pom.xml @@ -0,0 +1,59 @@ + + 4.0.0 + + zz + SpringBoot2 + 0.0.1-SNAPSHOT + + SpringBootShiroRememberMe + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + true + + + + + mysql + mysql-connector-java + 8.0.15 + + + + + org.apache.shiro + shiro-spring + 1.4.0 + + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + + alimaven + aliyun maven + http://maven.aliyun.com/nexus/content/groups/public/ + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + \ No newline at end of file diff --git a/SpringBootShiroRememberMe/target/classes/application.properties b/SpringBootShiroRememberMe/target/classes/application.properties new file mode 100644 index 0000000..e318f00 --- /dev/null +++ b/SpringBootShiroRememberMe/target/classes/application.properties @@ -0,0 +1,12 @@ +server.port=9087 +server.servlet.context-path=/r + +# 数据库的信息 +spring.datasource.url = jdbc:mysql://localhost:3306/java10?useSSL=false&serverTimezone=Asia/Shanghai +spring.datasource.username = root +spring.datasource.password = Java20190713*yy +spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver +spring.jpa.database = MYSQL +# spring.jpa.show-sql = true 表示会在控制台打印执行的sql语句 +spring.jpa.show-sql = true +spring.jpa.hibernate.ddl-auto = update \ No newline at end of file diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/App.class b/SpringBootShiroRememberMe/target/classes/com/zz/App.class new file mode 100644 index 0000000..1fb25e8 Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/App.class differ diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/config/ShiroConfig.class b/SpringBootShiroRememberMe/target/classes/com/zz/config/ShiroConfig.class new file mode 100644 index 0000000..dc9c8e4 Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/config/ShiroConfig.class differ diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/config/ShiroRealm.class b/SpringBootShiroRememberMe/target/classes/com/zz/config/ShiroRealm.class new file mode 100644 index 0000000..1c04456 Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/config/ShiroRealm.class differ diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/controller/LoginController.class b/SpringBootShiroRememberMe/target/classes/com/zz/controller/LoginController.class new file mode 100644 index 0000000..702c038 Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/controller/LoginController.class differ diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/entity/User.class b/SpringBootShiroRememberMe/target/classes/com/zz/entity/User.class new file mode 100644 index 0000000..5db8f5e Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/entity/User.class differ diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/pojo/ResponseBo.class b/SpringBootShiroRememberMe/target/classes/com/zz/pojo/ResponseBo.class new file mode 100644 index 0000000..01e4916 Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/pojo/ResponseBo.class differ diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/repository/UserRepository.class b/SpringBootShiroRememberMe/target/classes/com/zz/repository/UserRepository.class new file mode 100644 index 0000000..0488c04 Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/repository/UserRepository.class differ diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/service/UserService.class b/SpringBootShiroRememberMe/target/classes/com/zz/service/UserService.class new file mode 100644 index 0000000..7a051f9 Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/service/UserService.class differ diff --git a/SpringBootShiroRememberMe/target/classes/com/zz/util/MD5Utils.class b/SpringBootShiroRememberMe/target/classes/com/zz/util/MD5Utils.class new file mode 100644 index 0000000..d641b3e Binary files /dev/null and b/SpringBootShiroRememberMe/target/classes/com/zz/util/MD5Utils.class differ diff --git a/SpringBootShiroRememberMe/target/classes/static/index1.html b/SpringBootShiroRememberMe/target/classes/static/index1.html new file mode 100644 index 0000000..d07dfb1 --- /dev/null +++ b/SpringBootShiroRememberMe/target/classes/static/index1.html @@ -0,0 +1,54 @@ + + + + Bootstrap 实例 + + + + + + + + + +
+

基础表格

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FirstnameLastnameEmail
JohnDoejohn@example.com
MaryMoemary@example.com
JulyDooleyjuly@example.com
+
+ + + \ No newline at end of file diff --git a/SpringBootShiroRememberMe/target/classes/static/login1.html b/SpringBootShiroRememberMe/target/classes/static/login1.html new file mode 100644 index 0000000..51dd64e --- /dev/null +++ b/SpringBootShiroRememberMe/target/classes/static/login1.html @@ -0,0 +1,47 @@ + + + + Bootstrap 实例 + + + + + + + + + +
+

堆叠表单

+
+
+ + +
+
+ + +
+
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 8f41d37..c6d1a46 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,7 @@ SpringBootFile SpringBootHomework SpringBootSwagger2 + SpringBootShiroRememberMe