- Java - 框架 - SSM+Shiro整合
- 一、SSM整合
- 1.1 配置文件
- 1.1.1 pom.xml
- 1.1.2 jdbc.properties
- 1.1.3 log4j.properties
- 1.1.4 Spring配置文件
- 1.1.5 Mybatis配置文件
- 1.1.6 SpringMVC配置文件
- 1.1.7 web.xml
- 1.2 实现类
- 1..2.1 User
- 1.2.2 Controller
- 1.2.3 Service
- 1.2.4 dao
- 1.3 jsp页面
- 1.4 bug处理
- 二、SSM整合Shiro
- 2.1 配置文件
- 2.1.1 pom.xml
- 2.1.2 applicationContext-shiro.xml
- 2.1.3 web.xml
- 2.2 实现类
- 2.2.1 自定义Realm
- 2..2.2 LoginController.java
- 2.3 jsp页面
- 2.3.1 注册jsp
- 2.3.2 登录jsp
- 2.3.3success和exception jsp
-
tomcat插件
org.apache.tomcat.maven tomcat7-maven-plugin 2.2 8080 / utf-8 -
依赖文件
junit junit 4.11 test org.springframework spring-webmvc 5.2.17.RELEASE javax.servlet javax.servlet-api 4.0.1 provided commons-fileupload commons-fileupload 1.3.1 commons-io commons-io 2.4 org.hibernate hibernate-validator 5.3.0.Alpha1 org.projectlombok lombok 1.18.22 provided com.mchange c3p0 0.9.5.2 com.alibaba druid 1.1.24 org.projectlombok lombok 1.18.22 provided
jdbc.driver=com.mysql.jdbc.Driver
#此时数据库连接的jar包版本是5.x,如果数据库是8.x,这时候的driver在
#jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;
String name = token.getUsername();
User user =iUserService.findByName(name);
if (user==null){
System.out.println("账号不存在");
return null;
}
return new SimpleAuthenticationInfo(token.getUsername(),user.getPassword(),new SimpleByteSource("aaa"),"myrealm");
}
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
return null;
}
}
2…2.2 LoginController.java
import com.ssm.pojo.User;
import com.ssm.service.IUserService;
import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
@Controller
@RequestMapping
public class LoginController {
@Autowired
private IUserService iUserService;
@RequestMapping("/login.do")
public String login( HttpServletRequest request){
Object attribute = request.getAttribute(FormAuthenticationFilter.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME);
if(attribute != null){
System.out.println(attribute+ " ---- ");
}
//这里返回的是失败的地址
return "/login.jsp";
}
@RequestMapping("/register.do")
public String register( User user){
iUserService.addUser(user);
return "/login.jsp";
}
@RequestMapping("user/query")
public ModelAndView findByName(@RequestParam String name){
ModelAndView modelAndView = new ModelAndView();
User user = iUserService.findByName(name);
if (user == null){
modelAndView.addObject("msg","查询失败");
modelAndView.setViewName("/user.jsp");
}
else{
modelAndView.addObject("msg","欢迎成功");
modelAndView.setViewName("/user.jsp");
}
return modelAndView;
}
}
2.3 jsp页面
2.3.1 注册jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
2.3.2 登录jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Insert title here
Hello World!
2.3.3success和exception jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Insert title here
认证成功的页面!
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Insert title here
认证失败----------------的页面!



