보안 프레임 워크 구성 파일

1 ... spring_security.xml

1 <XML 버전 = "1.0"인코딩 = "UTF-8"?>
 2 <콩의 xmlns = "http://www.springframework.org/schema/beans"
 3         의 xmlns :이 xsi = "HTTP : // WWW. w3.org/2001/XMLSchema-instance "
 4 개         의 xmlns : 보안 ="http://www.springframework.org/schema/security "
 5         는 xsi :의 schemaLocation ="http://www.springframework.org/schema/beans
 6         HTTP : // www.springframework.org/schema/beans/spring-beans.xsd 
7         HTTP : // www.springframework.org/schema/security 
8         HTTP : // www.springframework.org/schema/security/spring- security.xsd ">
9      <! - 정적 리소스를 차단하지 않습니다 ->
10      <보안 : HTTP 패턴 = "/ CSS / **"보안 = "NONE"> </ 보안 : HTTP>
 11      <보안 : HTTP 패턴 = "/ IMG / **"보안 = "NONE"> </ 보안 : HTTP>
 (12)      <보안 : HTTP 패턴 = "/ 플러그인 / **"보안 = "없음"> </ 보안 : HTTP>
 (13)      <! -不拦截登录不拦截오류 ->
 (14)      <보안 : HTTP 패턴 = " /login.jsp "보안 ="NONE "> </ 보안 : HTTP>
 15      <보안 : HTTP 패턴 ="/ error.jsp "보안 ="NONE "> </ 보안 : HTTP>
 16      <보안 : HTTP 패턴 =" /favicon.ico "보안 ="없음 "> </ 보안 : HTTP>
17      <! - 차단 규칙 ->
 18      <! - 구성 규칙을 가로 챈
 19     오토의 자신의 페이지를 사용하는 설정을
 (20)        사용 - SpEL을 발현 여부를 식
 (21)은    ->
 (22)는      <보안 : HTTP 자동 설정 "거짓에"사용 - 표현 => "참으로"=
 (23)가          <- 구성, 최저 주소 ->!
 24          <보안 : intercept- 패턴 = URL "/ **"액세스 = "ROLE_USER"> </ 보안 : 가로 챕니다-URL>
 (25)          <- 특정 페이지로 이동하려면 구성 ->!
 26          <보안 : 형상 - 로그인
 27          로그인 페이지 = "/login.jsp"
 28          로그인 처리-URL = "/ 로그인"
 29          기본 -target-URL = "/를 index.jsp를"
 30          인증 실패-URL = "/를의 login.jsp"
31          > </ 보안 : 폼 로그인>
 32         <! -关闭跨域请求->
 33          <보안 : 비활성화 = "true"로 CSRF> </ 보안 : CSRF>
 (34)          <-退出登录! ->
 35          <보안 : 로그 아웃 무효화 세션 = "true"로 로그 아웃 - URL을 = "/ 로그 아웃"로그 아웃 - 성공 URL을 = "/의 login.jsp"> </ 보안 : 로그 아웃>
 36      </ 보안 : HTTP>
 37      <! -自带账户密码->
 38      <보안 : 인증 관리자>
 39          <보안 : 인증 공급자 사용자 서비스 REF = "sysUserService">
 40 <- <보안! 암호 엔코더 REF = "되는 PasswordEncoder"> </ 보안 : 암호 인코더> ->
 41 <
! - <보안 : 사용자 서비스> -> (42)<! - & LT; & ndash를临时账户密码不加密& ndash를한다! ->
 43 <- <보안! 사용자 이름 = "관리자"암호 = "{무 조작} 관리"기관 = "ROLE_USER을"> < / 보안 : 사용자> ->
 44 <! - </ 보안 : 사용자 서비스> ->
 45          </ 보안 : 인증 공급자>
 46      </ 보안 : 인증 관리자>
 47      <빈 ID = "되는 PasswordEncoder" 클래스 = "org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"> </ 빈>
 48 </ 콩>

2 ....의 web.xml

1 <! DOCTYPE 웹 - 응용 프로그램 PUBLIC
 2   "- // 썬 마이크로 시스템즈, Inc.//DTD 웹 응용 프로그램 2.3 // EN"
 3   "http://java.sun.com/dtd/web-app_2_3.dtd">
 4  
5 <웹 응용>
 6    <표시 이름> 아키 만들어진 웹 애플리케이션 </ 디스플레이 이름>
 7      <상황 PARAM>
 8          <PARAM 이름>는 contextConfigLocation </ PARAM 이름>
 9          <PARAM 값> 클래스 경로 * : 애플리케이션 컨텍스트 * .xml 또는 클래스 경로 spring_security.xml </ PARAM 값>
 10      </ 문맥 PARAM>
 11      <필터>
 12          <필터 이름>
CharacterEncodingFilter </ 필터 이름> 13         <필터 - 클래스 > org.springframework.web.filter.CharacterEncodingFilter </ 필터 - 클래스 >
 14          <INIT-PARAM>
 15              <PARAM 이름> 부호화 </ PARAM 이름>
 16              <PARAM 값> UTF-8 </ PARAM 값>
 17          </ INIT-PARAM>
 18      </ 필터>
 19      <필터>
 20          <필터 이름> springSecurityFilterChain </ 필터 이름>
 21          <필터 - 클래스 > org.springframework.web.filter.DelegatingFilterProxy </ 필터 - 클래스 >
 22      </ 필터>
23      <필터 매핑>
24          <필터 이름> CharacterEncodingFilter </ 필터 이름>
 (25)          <URL 패턴> / * </ URL 패턴>
 26      </ 필터 매핑>
 (27)      <! - 봄 보안的过滤器配置->
 28  
(29)      <필터 매핑>
 30          <필터 이름> springSecurityFilterChain </ 필터 이름>
 31          <URL 패턴> / * </ URL 패턴>
 32      </ 필터 매핑>
 33      <수신기>
 34          <리스너 클래스> 조직 .springframework.web.context.ContextLoaderListener </ 리스너 클래스>
 35      </ 청취자>
36      <서블릿>
 37         <서블릿 이름>의 DispatcherServlet </ 서블릿 이름>
 38          <서블릿 클래스> org.springframework.web.servlet.DispatcherServlet </ 서블릿 클래스>
 39          <INIT-PARAM>
 40              <PARAM 이름>는 contextConfigLocation </ param- 이름>
 41              <PARAM 값> 클래스 경로 * spring_mvc.xml </ PARAM 값>
 42          </ INIT-PARAM>
 43          <! -按照톰캣顺序加载->
 44          <시작시로드> 1 </ 시작시로드>
 45      </ 서블릿>
 46      <서블릿 매핑>
 47          <서블릿 이름>의 DispatcherServlet </ 서블릿 이름>
48          <URL 패턴> / </ URL 패턴>
 49     </ 서블릿 매핑>
 50      <시작 파일리스트>
 51          <시작 파일> index.html을 </ 시작 파일>
 52          <시작 파일>있는 index.htm </ 시작 파일>
 53          <시작 파일> index.jsp를 </ 시작 파일>
 54          <시작 파일> default.html을 </ 시작 파일>
 55          <시작 파일> default.htm으로 </ 시작 파일>
 56          <시작 파일> Default.jsp를 </ 환영 파일>
 57      </ 환영 - 파일 목록>
 58  </ 웹 응용 프로그램>

3 ... MD5 자바 코드 암호화 암호

. (1)  패키지 com.wsc.md5;
 2  
. 3  가져 java.math.BigInteger에]
 . (4)  수입 java.security.MessageDigest의]
 . 5  오기 java.security.NoSuchAlgorithmException]
 . 6  
(7).  공용  클래스 MD5Utils {
 8.      / ** 
9.       * 알고리즘이 사용되는 MD5 암호화
 10       * / 
. 11      공개  정적 {문자열 MD5 (문자열 평문)
 (12)는          바이트 [] = secretBytes ;
 13 인          은 try {
 14              secretBytes = MessageDigest.getInstance ( "MD5") .digest (
 15                      plainText.getBytes ());
 16          } 캐치 (경우 NoSuchAlgorithmException E) {
 17.              드로  새로운 새 말고 RuntimeException ( "아니오 MD5 알고리즘!" );
 18된다          }
 . 19          문자열 md5code = 새로운 새 를 BigInteger (1 secretBytes)로 .toString (. 16); // 진수
 20          // 생성 수가 32 미만이면, 상기 0 채워야 
21 인          위해 ( int로 I = 0; I 32 <- md5code.length ()를, I는 ++ ) {
 22은              md5code = "0 "+ md5code;
 23이다          }
 24          반환md5code;
25      }
 26  
27      공공  정적  무효 메인 (문자열 []에 args) {
 28          에서 System.out.println (MD5 ( "123" ));
29      }
 30  
31 }

4 ... 평문 패스워드를 구하는

1  //   MD5 
2          @Autowired
 3          되는 PasswordEncoder되는 PasswordEncoder;
4      @RequestMapping ( "추가 /" )
 5      공개 문자열 (SYSUSER의 SYSUSER) 추가 {
 6  
7          // 获取明文密码
 8  //         문자열 암호 sysuser.getPASSWORD = ();
9  //         // 对明文密码加密
 10  //         문자열 md5password = passwordEncoder.encode (암호);
11  //         sysuser.setPASSWORD (md5password); 
12          sysuserService.add (SYSUSER);
13          반환"리디렉션 : / 사용자 / pageChange을" ;
14      }

 

추천

출처www.cnblogs.com/wangshichang/p/11365314.html