目录结构如下

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH8AAAAZCAIAAACXcmYDAAACSklEQVRoge3Zv0vjYBgH8PevObIE7tBiKXJ/gkP2LO924HBk6XI6pCBHHLRLXBQOhwwF6Yu7gkMhkMGhJ8opVbOYq6VcCm+SNgUd3vwy1bTcBd57Y748lDfhfUv4vOkT2oInRnO9WwNBarvXtK/mLwNoX8C7TqlPM/+q/+HHr2JXLspvJQd9w3KKWozpHysfXy3qju9Cv/3903gyTdXP4y9MbQASAGyyqN/aWprVvzmTmdoAlvXd8TRVN2cy2YDW1hJt2ULrHzYq2PWx6zteXO546ng+dv3DRoW2bNH1beyfnN+dnN9dmkMb+5fmkBzaOEO/Ky0DQUNC+PVV0JIWUQIUw0ICqEqawkeTNUhm8HI3+c5tuRqtaooAiGiBtczq722s2NjnoMpBtb5/amO/vn9KDm3s722sZOjHuBoMx0hIgr48D5aVthXaiciwHENX+HiHgmqKgJe7hgaD+fPXsqw/GE04qFbWDyrrB4PRhAw4qA5Gk2z9xP0eHsZkqWlIAFVJT3wOXhmnPj1z50djlvUfhh658Tmo7hwZ0fj3n3Ee+hFQqT+jv12vEf2dI2Nts8VBdW2zRfbgYeht12tZnYd0gBfNeqbzxN0jU1BX+PAk6TxtubroWqb1zX6gT9Cjgdmfoy+IcObp6mQ9dRfQb4phi483uLj6DWnV7Huo09OvHi/ubdTpXdzb+tUj6vTMvteQVhfrPP9Lsad/a7m3lpd4javUTyVn/W9fP2dXqZ9M+Qsz4/rFrlyU30r5zyLNlPo0U+rTTKlPM895EgSpnxXpNAAAAABJRU5ErkJggg==" alt="" />

1.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spring_security_1</groupId>
<artifactId>spring_security_1</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>spring_security_1 Maven Webapp</name>
<url>http://maven.apache.org</url> <properties>
<!-- spring版本号 -->
<spring.version>3.2.4.RELEASE</spring.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.4</mybatis.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.9</log4j.version>
</properties>
<dependencies>
<!-- spring核心包 -->
<!-- springframe start -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- springframe end --> <!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!-- junit测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency> <!-- 日志文件管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end --> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency> <dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.11.0.GA</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> <dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
</dependencies> <build>
<finalName>spring_security_1</finalName>
</build>
</project>

2.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>spring_security_1</display-name> <context-param>
<param-name>contextConfigLocation</param-name>
<!-- 应用上下文配置文件 -->
<!-- 两种位置写法 -->
<!-- springMvc和spring security 两个配置文件 -->
<!-- <param-value>/WEB-INF/spring-servlet.xml</param-value> -->
<param-value>classpath:ApplicationContext.xml,classpath:spring-servlet2.xml,classpath:applicationContext-security.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!-- spring securit start -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring securit start --> <!-- 配置spring核心servlet -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet> <!-- url-pattern配置为/ 拦截 -->
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> </web-app>

3.ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- 配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost/spring_security?useUnicode=true&amp;characterEncoding=utf-8</value>
<!--springmybaitis是我的数据库 -->
</property>
<property name="username">
<value>cqyusp_dev</value>
</property>
<property name="password">
<value>cqyusp_dev</value>
</property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="lqy.UserMapper"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
</beans>

4.applicationContext-security.xml

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd"> <http auto-config="true" >
<access-denied-handler error-page="/accessDenied.jsp"/>
<intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" />
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" default-target-url="/index.jsp" />
</http> <authentication-manager>
<authentication-provider>
<!-- <password-encoder hash="md5">
<salt-source user-property="username"/>
</password-encoder> -->
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="select username,password,status as enabled
from user
where username=?"
authorities-by-username-query="select u.username,r.name as authority
from user u
join user_role ur
on u.id=ur.user_id
join role r
on r.id=ur.role_id
where u.username=?"/>
</authentication-provider>
</authentication-manager> <!-- ApplicationContext配了数据源了 -->
<!-- <beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<beans:property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<beans:property name="url" value="jdbc:mysql://localhost/spring_security?useUnicode=true&amp;characterEncoding=utf-8"/>
<beans:property name="username" value="cqyusp_dev"/>
<beans:property name="password" value="cqyusp_dev"/>
</beans:bean> --> </beans:beans>

5.mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper resource="lqy/User.xml"/>
</mappers>
</configuration>

6.spring-servlet2.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射-->
<mvc:annotation-driven />
<!-- 启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean -->
<context:component-scan base-package="lqy" /> <!--这个包根据自己的项目来配置,我的是lqy-->
<!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
</beans>

再看看java文件

User.java

package lqy;

public class User {

    private String id;
private String username;
private String password;
private String status;
private String descn;
/**
* @return 返回 id。
*/
public String getId() {
return id;
}
/**
* @param id 设置 id。
*/
public void setId(String id) {
this.id = id;
}
/**
* @return 返回 username。
*/
public String getUsername() {
return username;
}
/**
* @param username 设置 username。
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return 返回 password。
*/
public String getPassword() {
return password;
}
/**
* @param password 设置 password。
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return 返回 status。
*/
public String getStatus() {
return status;
}
/**
* @param status 设置 status。
*/
public void setStatus(String status) {
this.status = status;
}
/**
* @return 返回 descn。
*/
public String getDescn() {
return descn;
}
/**
* @param descn 设置 descn。
*/
public void setDescn(String descn) {
this.descn = descn;
} }

UserMapper.java

package lqy;

public interface  UserMapper {
public User getUser(User user);
public void addUser(User user);
}

User.xml

<?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="lqy.UserMapper">
<select id="getUser" parameterType="lqy.User" resultType="lqy.User">
SELECT id,username,password,status,descn FROM user WHERE id=#{id}
</select>
<insert id="addUser" parameterType="lqy.User" flushCache="true">
INSERT INTO user (id,username,password,status,descn) VALUES (
#{id},#{username},#{password},#{status},#{descn}
)
</insert> </mapper>

WelcomeConstroller.java

package lqy;
import java.util.Collection; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; @Controller
public class WelcomeConstroller { @Autowired
private UserMapper userMapper; @RequestMapping(value = "/welcome", method = RequestMethod.GET)
public String welcome(HttpServletRequest request,Model model) {
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext()
.getAuthentication()
.getPrincipal();
Collection<? extends GrantedAuthority> authorities = userDetails.getAuthorities();
model.addAttribute("authorities", authorities.toString());
model.addAttribute("username", userDetails.getUsername());
model.addAttribute("userDetails", userDetails);
return "/hello";
} @RequestMapping(value = "/testUser", method = RequestMethod.GET)
public String testUser(HttpServletRequest request,Model model) {
User user=new User();
//添加两条数据
user.setId("11");
user.setUsername("testUser");
userMapper.addUser(user);
return "/hello";
} @SuppressWarnings("resource")
public static void main(String[] args) {
ApplicationContext ctx=null;
ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper userMapper=(UserMapper) ctx.getBean("userMapper");
User user=new User();
//添加两条数据
user.setId("10");
user.setUsername("123");
userMapper.addUser(user);
System.out.println("添加成功"); } }

运行main方法,成功

sql建表

-- 资源
CREATE TABLE resc(
id BIGINT,
NAME VARCHAR(50),
res_type VARCHAR(50),
res_string VARCHAR(200),
priority INTEGER,
descn VARCHAR(200)
);
ALTER TABLE resc ADD CONSTRAINT pk_resc PRIMARY KEY(id);
ALTER TABLE resc MODIFY id BIGINT AUTO_INCREMENT; -- 角色
CREATE TABLE role(
id BIGINT,
NAME VARCHAR(50),
descn VARCHAR(200)
);
ALTER TABLE role ADD CONSTRAINT pk_role PRIMARY KEY(id);
ALTER TABLE role MODIFY id BIGINT AUTO_INCREMENT; -- 用户
CREATE TABLE USER(
id BIGINT,
username VARCHAR(50),
PASSWORD VARCHAR(50),
STATUS INTEGER,
descn VARCHAR(200)
);
ALTER TABLE USER ADD CONSTRAINT pk_user PRIMARY KEY(id);
ALTER TABLE USER MODIFY id BIGINT AUTO_INCREMENT; -- 资源角色连接表
CREATE TABLE resc_role(
resc_id BIGINT,
role_id BIGINT
);
ALTER TABLE resc_role ADD CONSTRAINT pk_resc_role PRIMARY KEY(resc_id, role_id);
ALTER TABLE resc_role ADD CONSTRAINT fk_resc_role_resc FOREIGN KEY(resc_id) REFERENCES resc(id);
ALTER TABLE resc_role ADD CONSTRAINT fk_resc_role_role FOREIGN KEY(role_id) REFERENCES role(id); -- 用户角色连接表
CREATE TABLE user_role(
user_id BIGINT,
role_id BIGINT
);
ALTER TABLE user_role ADD CONSTRAINT pk_user_role PRIMARY KEY(user_id, role_id);
ALTER TABLE user_role ADD CONSTRAINT fk_user_role_user FOREIGN KEY(user_id) REFERENCES USER(id);
ALTER TABLE user_role ADD CONSTRAINT fk_user_role_role FOREIGN KEY(role_id) REFERENCES role(id); INSERT INTO USER(id,username,PASSWORD,STATUS,descn) VALUES(1,'admin','admin',1,'管理员');
INSERT INTO USER(id,username,PASSWORD,STATUS,descn) VALUES(2,'user','user',1,'用户'); INSERT INTO role(id,NAME,descn) VALUES(1,'ROLE_ADMIN','管理员角色');
INSERT INTO role(id,NAME,descn) VALUES(2,'ROLE_USER','用户角色'); INSERT INTO resc(id,NAME,res_type,res_string,priority,descn) VALUES(1,'','URL','/admin.jsp',1,'');
INSERT INTO resc(id,NAME,res_type,res_string,priority,descn) VALUES(2,'','URL','/**',2,''); INSERT INTO resc_role(resc_id,role_id) VALUES(1,1);
INSERT INTO resc_role(resc_id,role_id) VALUES(2,1);
INSERT INTO resc_role(resc_id,role_id) VALUES(2,2); INSERT INTO user_role(user_id,role_id) VALUES(1,1);
INSERT INTO user_role(user_id,role_id) VALUES(1,2);
INSERT INTO user_role(user_id,role_id) VALUES(2,2);

测试输入 http://localhost:8080/spring_security_1/login.jsp

aaarticlea/png;base64,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" alt="" />

登陆成功

aaarticlea/png;base64,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" alt="" />

剩下jsp页面

hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<h2>${username }</h2>
<h3>${authorities }</h3>
</body>
</html>

accessDenied.jsp

<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Access Denied</title>
<style type="text/css">
div.error {
width: 260px;
border: 2px solid red;
background-color: yellow;
text-align: center;
}
</style>
</head>
<body>
<h1>Access Denied</h1>
<hr>
<div class="error">
访问被拒绝<br>
${requestScope['SPRING_SECURITY_403_EXCEPTION'].message}
</div>
<hr>
</body>
</html>

admin.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录首页</title>
</head>
<body>
<span color="red">登录成功!</span>
</body>
</html>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%String path=request.getContextPath(); %>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录首页</title>
</head>
<body>
<div>username : <sec:authentication property="name"/></div>
<span color="red">登录成功!</span>
<a href="<%=path %>/welcome">welcome</a>
</body>
</html>

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% String path=request.getContextPath(); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login</title>
</head>
<body> <div class="error ${param.error == true ? '' : 'hide'}">
${sessionScope['SPRING_SECURITY_LAST_EXCEPTION'].message}
</div>
<form action="${pageContext.request.contextPath}/j_spring_security_check" method="post">
<fieldset>
<legend>登陆</legend>
用户: <input type="text" name="j_username" style="width:150px;" value="${sessionScope['SPRING_SECURITY_LAST_USERNAME']}"/><br />
密码: <input type="password" name="j_password" style="width:150px;" /><br />
<input type="checkbox" name="_spring_security_remember_me" />两周之内不必登陆<br />
<input type="submit" value="登陆"/>
<input type="reset" value="重置"/>
</fieldset>
</form>
</body>
</html>

SpringMVC 3.2集成Spring Security 3.2集成mybaties的更多相关文章

  1. SpringMVC 3.1集成Spring Security 3.1

    这篇算是一个入门文章,昨天看见有网友提问,spring mvc集成spring security 的时候出错,揣测了一下问题木有解决.我就帮忙给搭建了一个集成框架他说可以,他告诉我这样的文章网上少.今 ...

  2. SpringMVC 3.2集成Spring Security 3.2

    参考:http://www.cnblogs.com/Beyond-bit/p/springmvc_and_springsecurity.html SpringMVC 3.2集成Spring Secur ...

  3. 【Spring】关于Boot应用中集成Spring Security你必须了解的那些事

    Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...

  4. SpringBoot 集成Spring security

    Spring security作为一种安全框架,使用简单,能够很轻松的集成到springboot项目中,下面讲一下如何在SpringBoot中集成Spring Security.使用gradle项目管 ...

  5. 关于Boot应用中集成Spring Security你必须了解的那些事

    Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...

  6. Spring Boot中集成Spring Security 专题

    check to see if spring security is applied that the appropriate resources are permitted: @Configurat ...

  7. SpringBoot集成Spring Security入门体验

    一.前言 Spring Security 和 Apache Shiro 都是安全框架,为Java应用程序提供身份认证和授权. 二者区别 Spring Security:重量级安全框架 Apache S ...

  8. SpringBoot集成Spring Security(7)——认证流程

    文章目录 一.认证流程 二.多个请求共享认证信息 三.获取用户认证信息 在前面的六章中,介绍了 Spring Security 的基础使用,在继续深入向下的学习前,有必要理解清楚 Spring Sec ...

  9. SpringBoot集成Spring Security(6)——登录管理

    文章目录 一.自定义认证成功.失败处理 1.1 CustomAuthenticationSuccessHandler 1.2 CustomAuthenticationFailureHandler 1. ...

随机推荐

  1. 1001. Exponentiation高精度运算总结

    解题思路 这道题属于高精度乘法运算,要求输入一个实数R一个指数N,求实数R的N次方,由于R有5个数位,而N又特别大,因此用C++自带的数据类型放不下. 解题思路是通过数组储存每次乘积结果和底数的每一位 ...

  2. Extjs6官方文档译文——应用架构简介(MVC,MVVM)

    应用架构简介 Extjs 同时提供对于MVC和MVVM应用架构的支持.这两个架构方式共享某些概念,而且都旨在沿着逻辑层面划分应用程序代码.每种方法在选择如何划分应用组件上都有其各自的优势. 本指南的目 ...

  3. CF #344 D. Messenger KMP/Z

    题目链接:http://codeforces.com/problemset/problem/631/D 给定两个压缩形式的字符串,如a3b5a4k7这样的形式 问A在B中出现次数. 分类讨论,如果A是 ...

  4. 《JavaScript面向对象编程指南(第2版)》读书笔记(一)

    目录 一.对象 1.1 获取属性值的方式 1.2 获取动态生成的属性的值 二.数组 2.1 检测是否为数组 2.2 增加数组长度导致未赋值的位置为undefined 2.3 用闭包实现简易迭代器 三. ...

  5. python基础教程第二版 第一章

    1.模块导入python以增强其功能的扩展:三种方式实现 (1). >>> Import math >>> math.floor(32.9) 32.0 #按照 模块 ...

  6. 三、Dotnet Core Code First 创建数据库

    1.在项目中创建Models文件夹2.在Models文件夹中建立 表的属性类:如 User类.3.在Models文件夹创建DataContext 继承DbContext类(可以选择重写OnModelC ...

  7. Linux 3.2中回写机制的变革

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://alanwu.blog.51cto.com/3652632/1109952 wri ...

  8. webpack中利用require.ensure()实现按需加载

    webpack中的require.ensure()可以实现按需加载资源包括js,css等,它会给里面require的文件单独打包,不和主文件打包在一起,webpack会自动配置名字,如0.js,1.j ...

  9. VS2015如何新建C++或者C语言版的lib文件

    当我们不想公开我们的代码的时候,可以把我们的代码封装成静态数据连接库,即lib文件.下面介绍下如何生成lib文件. 以VS2015为例,一种是C++版的lib文件,一种是C语言版的lib文件. 一.按 ...

  10. session知识总结

    0.什么是会话? - 简单理解:打开浏览器到关闭浏览器过程中的操作.请求. 1.Session是什么? - session是HttpSession的简称: - 用于保存会话状态: - 将会话状态保存在 ...