成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

SpringSecurity01(使用傳統(tǒng)的xml方式開(kāi)發(fā),且不連接數(shù)據(jù)庫(kù))

Gilbertat / 2010人閱讀

摘要:創(chuàng)建一個(gè)工程在里面添加依賴(lài),依賴(lài)不要隨便改我改了出錯(cuò)了好幾次都找不到原因可以輕松的將對(duì)象轉(zhuǎn)換成對(duì)象和文檔同樣也可以將轉(zhuǎn)換成對(duì)象和配置

1.創(chuàng)建一個(gè)web工程
2.在pom里面添加依賴(lài),依賴(lài)不要隨便改,我改了出錯(cuò)了好幾次都找不到原因


    UTF-8
    1.7
    1.7
    2.5.0
    1.2
    3.0-alpha-1
  
  
    
    
      org.springframework
      spring-webmvc
      4.3.13.RELEASE
    
    
      org.springframework
      spring-web
      4.3.13.RELEASE
    
    
      org.springframework
      spring-context
      4.3.13.RELEASE
    
    
      org.springframework
      spring-beans
      4.3.13.RELEASE
    
    
      org.springframework
      spring-core
      4.3.13.RELEASE
    
    
    
      org.springframework.security
      spring-security-config
      4.2.3.RELEASE
    
    
      org.springframework.security
      spring-security-web
      4.2.3.RELEASE
    

    
    
    
      com.fasterxml.jackson.core
      jackson-core
      ${jacksonVersion}
    
    
      com.fasterxml.jackson.core
      jackson-annotations
      ${jacksonVersion}
    

    
      com.fasterxml.jackson.core
      jackson-databind
      ${jacksonVersion}
    
    
      org.codehaus.jackson
      jackson-mapper-asl
      1.9.13
    
    
      org.codehaus.jackson
      jackson-core-asl
      1.9.13
    

    
    
      jstl
      jstl
      ${jstlVersion}
    
    
      javax.servlet
      servlet-api
      ${servletVersion}
      provided
    
    
      javax.servlet.jsp
      jsp-api
      2.2
      provided
    
  

3.配置web.xml



  user-manager
  
    index.jsp
  

  
  
    contextConfigLocation
    
      classpath:applicationContext.xml
      classpath:springSecurity.xml
    
  
  
  
    org.springframework.web.context.ContextLoaderListener
  



  
  
    springSecurityFilterChain
    org.springframework.web.filter.DelegatingFilterProxy
  
  
    springSecurityFilterChain
    /*
  

  
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
    
      forceEncoding
      true
    
  
  
    encodingFilter
    /*
  
  
  
    spring
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      
      classpath:springmvc.xml
    
    
    1
  
  
    spring
    /
  
  

4.配置applicationContext.xml



5.配置springmvc.xml



    
    

    
    
        
        
            
            
                
                    
                        text/plain;charset=utf-8
                        text/html;charset=UTF-8
                    
                
            
        
    
    
    



    
    
        
        
    
    
    
    
    
    
    
    
    
        
        
        
        
    

6.配置springSecurity.xml



    
    
        
        

        
        
        
        
        
        
        
        
        
        
        


        
        

        
        
        
    

    
    
          
        
              
            
            
            
            
        

    

    
    

    
    

7.自定義成功處理的攔截器 MyAuthenticationSuccessHandler

public class MyAuthenticationSuccessHandler implements AuthenticationSuccessHandler {
    private  final  static ObjectMapper objectMapper=new ObjectMapper();
    @Override
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
        //這里是可以拿到用戶(hù)對(duì)的登錄名的
        String username = request.getParameter("username");
        System.out.println(username);
        response.setContentType("application/json;charset=utf-8");
        String successMessage = objectMapper.writeValueAsString(new JsonData(200, "登陸成功"));
        response.getWriter().print(successMessage);
    }
}

自定義失敗處理器的攔截器

public class MyAuthenticationFailureHandler implements AuthenticationFailureHandler{
    private  final  static ObjectMapper objectMapper=new ObjectMapper();
    @Override
    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException, ServletException {
        //這里是可以拿到用戶(hù)對(duì)的登錄名的
        String username = request.getParameter("username");
        System.out.println(username);
        response.setContentType("application/json;charset=utf-8");
        String failureMessage = objectMapper.writeValueAsString(new JsonData(500, "登陸失敗"));
        response.getWriter().print(failureMessage);
    }
}

自定義的authentication-provider下面的user-service
定義一個(gè)類(lèi),這個(gè)實(shí)現(xiàn)類(lèi)就是用于封裝數(shù)據(jù)庫(kù)里面的用戶(hù)的信息然后返回給springsecurity,它會(huì)比較從
表單穿過(guò)來(lái)的用戶(hù)名和密碼和數(shù)據(jù)庫(kù)查出來(lái)的用戶(hù)名和密碼進(jìn)行比對(duì),這里寫(xiě)死,以后再加數(shù)據(jù)庫(kù)

public class MyUserDetailService implements UserDetailsService {
    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
        //UserDetails:封裝用戶(hù)數(shù)據(jù)的接口,這里應(yīng)該是數(shù)據(jù)庫(kù)查詢(xún)出來(lái)的數(shù)據(jù),當(dāng)返回這個(gè)user對(duì)象時(shí),springsecurity會(huì)把輸入的用戶(hù)名和密碼和這個(gè)對(duì)象里面的用戶(hù)名和密碼進(jìn)行比對(duì)
        //成功則認(rèn)證通過(guò),失敗則登陸失敗
        User user=new User("jojo","123456", AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER"));
        return user;
    }
}

創(chuàng)建這個(gè)目錄結(jié)構(gòu)

示范

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    商品添加頁(yè)面


商品添加頁(yè)面

其它頁(yè)面一樣
index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    首頁(yè)


一下是網(wǎng)站的功能
商品添加
商品修改
商品查詢(xún)
商品刪除


login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登錄頁(yè)面


用戶(hù)名:
密 碼:

errorPage.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    自定義錯(cuò)誤頁(yè)面


權(quán)限不足,請(qǐng)正確操作


controller

@Controller
public class MainController {
    /**
     *
     * @return登錄頁(yè)面
     */
    @RequestMapping("/userLogin")
    public String loginPage()
    {
        return "login";
    }

    /**
     *
     * @return登錄頁(yè)面
     */
    @RequestMapping("/error")
    public String errorPage()
    {
        return "errorPage";
    }
}
@Controller
@RequestMapping("product")
public class ProductController {


    /**
     * 商品添加
     */
    @RequestMapping("index")
    public String index()
    {
        return "index";
    }
    /**
     * 商品添加
     */
    @RequestMapping("add")
    public String add()
    {
        return "product/productAdd";
    }

    /**
     * 商品修改
     */
    @RequestMapping("update")
    public String update()
    {
        return "product/productUpdate";
    }
    /**
     * 商品列表
     */
    @RequestMapping("list")
    public String list()
    {
        return "product/productList";
    }
    /**
     * 商品刪除
     */
    @RequestMapping("delete")
    public String delete()
    {
        return "product/productDelete";
    }
}

創(chuàng)建一個(gè)返回給前臺(tái)的包裝類(lèi),用于返回code和message

public class JsonData {

    private Integer code;

    private String message;


    public JsonData() {
    }


    public JsonData(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/75711.html

相關(guān)文章

  • SpringSecurity系列01】初識(shí)SpringSecurity

    摘要:什么是是一個(gè)能夠?yàn)榛诘钠髽I(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪(fǎng)問(wèn)控制解決方案的安全框架。它來(lái)自于,那么它與整合開(kāi)發(fā)有著天然的優(yōu)勢(shì),目前與對(duì)應(yīng)的開(kāi)源框架還有。通常大家在做一個(gè)后臺(tái)管理的系統(tǒng)的時(shí)候,應(yīng)該采用判斷用戶(hù)是否登錄。 ? 什么是SpringSecurity ? ? Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪(fǎng)問(wèn)控制解決方案的安全...

    elva 評(píng)論0 收藏0
  • SpringSecurity01(springSecurity執(zhí)行流程02)

    摘要:里面配置的過(guò)濾器鏈當(dāng)用戶(hù)使用表單請(qǐng)求時(shí)進(jìn)入返回一個(gè)的實(shí)例一般是從數(shù)據(jù)庫(kù)中查詢(xún)出來(lái)的實(shí)例然后直接到最后一個(gè)如果有錯(cuò)則拋錯(cuò)給前面一個(gè)進(jìn)行拋錯(cuò)如果沒(méi)有錯(cuò)則放行可以訪(fǎng)問(wèn)對(duì)應(yīng)的資源上面是總的執(zhí)行流程下面單獨(dú)說(shuō)一下的認(rèn)證流程這個(gè)圖應(yīng)該都看得懂和里面的配 showImg(https://segmentfault.com/img/bVbvO0O?w=1258&h=261);web.xml里面配置的過(guò)濾...

    Dr_Noooo 評(píng)論0 收藏0
  • springSecurity02(mybatis+springmvc+spring) 01

    摘要:建立一個(gè)模塊繼承上一個(gè)模塊然后添加依賴(lài)解決打包時(shí)找不到文件建立數(shù)據(jù)源文件數(shù)據(jù)庫(kù)連接相關(guān)修改配置數(shù)據(jù)源和整合,以及事務(wù)管理自動(dòng)掃描掃描時(shí)跳過(guò)注解的類(lèi)控制器掃描配置文件這里指向的是 1.建立一個(gè)模塊繼承上一個(gè)模塊然后添加依賴(lài) junit junit 4.11 test ...

    FrancisSoung 評(píng)論0 收藏0
  • Spring4和SpringSecurity4整合(二)連接mybatis和mysql

    摘要:在上一篇基本配置了一些文件中,基本可以在文件中指定用戶(hù)名和密碼來(lái)進(jìn)行實(shí)現(xiàn)的驗(yàn)證,這次和一起來(lái)配合使用加入的配置文件別名在的中配置數(shù)據(jù)源查找配置事物然后建立層,和層以及對(duì)應(yīng)這里省略實(shí) 在上一篇基本配置了一些文件中,基本可以在文件中指定用戶(hù)名和密碼來(lái)進(jìn)行實(shí)現(xiàn)SpringSecurity的驗(yàn)證,這次和mynatis一起來(lái)配合使用 加入mybatis的配置文件: mybatis-config....

    NoraXie 評(píng)論0 收藏0
  • Spring4和SpringSecurity4整合(一)

    摘要:的官方文檔及其簡(jiǎn)單,他的示例配置就是在文件中把用戶(hù)名和密碼寫(xiě)固定了,然而在實(shí)際工作中是不可能的,參考了下網(wǎng)上的教程發(fā)現(xiàn)良莠不齊,特此寫(xiě)下記錄學(xué)習(xí)過(guò)程首先導(dǎo)入包配置后面直接寫(xiě)這里會(huì)提示出錯(cuò),提示找不 SpringSecurity的官方文檔及其簡(jiǎn)單,他的示例配置就是在xml文件中把用戶(hù)名和密碼寫(xiě)固定了,然而在實(shí)際工作中是不可能的,參考了下網(wǎng)上的教程發(fā)現(xiàn)良莠不齊,特此寫(xiě)下記錄學(xué)習(xí)過(guò)程首先po...

    sorra 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<