目录结构如下

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. 职责链模式(Chain of Responsibility)的Java实现

    职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它 ...

  2. jenkins容器权限被被拒绝

    问题,我们从官网上面pull下jenkins后,如果直接运行容器的没问题 docker run -d -p 8080:8080 -v jenkins:latest 不过我们可能需要映射下容器内部的地址 ...

  3. Android 瘦身之道 ---- so文件

    Android 瘦身之道 ---- so文件 [TOC] 1. 前言 目前Android 瘦身只有几个方面可以入手,因为apk的结构就已经固定了. res 目录下的资源文件.(通常是压缩图片,比如 矢 ...

  4. 解决tomcat debug 调试时间过长的问题

    做java web很早就碰到一个问题,eclipse 的调试有时候忽然启动时间奇慢 ,但是正常启动速度没问题,其他项目也完全正常 后来想想也不影响项目运行,也没太在意 不过今天又碰到这问题了,而且启动 ...

  5. python executemany的使用

    使用executemany对数据进行批量插入的话,要注意一下事项: #coding:utf8 conn = MySQLdb.connect(host = "localhost", ...

  6. GPIO寄存器

    GPIO寄存器描述 <STM32参考手册中文-p75> 1.端口配置低寄存器(GPIOx_CRL)(x = A...E)2.端口配置高寄存器(GPIOx_CRH)(x = A...E) 3 ...

  7. 空a标签 a标签空的情况下 IE6 IE7下点击无效

    最近做了好多网站专题页面,因为专题页面图片较多,个别banner上有1个到多个按钮,一种是用“图解img标签的usemap”的方法做链接,(图解img标签的usemap使用方法)[传送门] 另一种用则 ...

  8. IE6-7下margin-bottom不兼容解决方法(非原创,视频中看到的)

    在IE低版本下有很多不兼容,现在将看到的   IE6-7下margin-bottom不兼容解决方法   演示一下,方便日后自己查阅. <!DOCTYPE html> <html la ...

  9. BeautifulSoup库children(),descendants()方法的使用

    BeautifulSoup库children(),descendants()方法的使用 示例网站:http://www.pythonscraping.com/pages/page3.html 网站内容 ...

  10. Extjs6(一)——用sencha cmd建立一个ExtJs小项目

    本文基于ext-6.0.0 一.用sencha cmd建立一个ExtJs小项目 首先,需要一个命令行工具.进入extjs所在目录. 然后,输入:sencha -sdk [ExtJs6.0文件夹地址] ...