<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    CAS單點(diǎn)登陸,中文用戶(hù)名無(wú)法驗(yàn)證解決方案

    登陸名如果用中文的話(huà),會(huì)出現(xiàn)亂碼,導(dǎo)致無(wú)法驗(yàn)證通過(guò)。解決中文問(wèn)題無(wú)非就是編碼問(wèn)題,其中需要轉(zhuǎn)換編碼的有以下幾個(gè)地方.

    第一,在Web.xml文件里加上Filter,對(duì)所有頁(yè)面進(jìn)行一次編碼轉(zhuǎn)換.

     1<filter>
     2        <description>EncodingFilter</description>
     3        <filter-name>EncodingFilter</filter-name>
     4        <filter-class>com.xyb.EncodingFilter</filter-class>
     5        <init-param>
     6            <description>encoding_charset</description>
     7            <param-name>encoding</param-name>
     8            <param-value>gb2312</param-value>
     9        </init-param>
    10        <init-param>
    11            <param-name>ignore</param-name>
    12            <param-value>true</param-value>
    13        </init-param>
    14</filter>
    15<filter-mapping>
    16        <filter-name>EncodingFilter</filter-name>
    17        <url-pattern>/*</url-pattern>
    18</filter-mapping>

    下面是EncodingFilter類(lèi):

     1package com.xyb;
     2
     3import java.io.IOException;
     4
     5import javax.servlet.Filter;
     6import javax.servlet.FilterChain;
     7import javax.servlet.FilterConfig;
     8import javax.servlet.ServletException;
     9import javax.servlet.ServletRequest;
    10import javax.servlet.ServletResponse;
    11
    12/**
    13*
    14@author XiangYabin
    15*/

    16public class EncodingFilter implements Filter {
    17    
    18    protected String encoding = null;
    19    protected FilterConfig filterConfig = null;
    20    protected boolean ignore = true;
    21    
    22    public void destroy() {
    23        
    24        this.encoding = null;
    25        this.filterConfig = null;
    26        
    27    }

    28    
    29    public void doFilter(ServletRequest request, ServletResponse response,
    30            FilterChain chain)
    31            throws IOException, ServletException {
    32// Conditionally select and set the character encoding to be used
    33        if (ignore || (request.getCharacterEncoding() == null)) {
    34            String encoding = selectEncoding(request);
    35            if (encoding != null)
    36                request.setCharacterEncoding(encoding);
    37        }

    38        
    39// Pass control on to the next filter
    40        chain.doFilter(request, response);
    41        
    42    }

    43    
    44    public void init(FilterConfig filterConfig) throws ServletException {
    45        
    46        this.filterConfig = filterConfig;
    47        this.encoding = filterConfig.getInitParameter("encoding");
    48        String value = filterConfig.getInitParameter("ignore");
    49        if (value == null)
    50            this.ignore = true;
    51        else if (value.equalsIgnoreCase("true"))
    52            this.ignore = true;
    53        else if (value.equalsIgnoreCase("yes"))
    54            this.ignore = true;
    55        else
    56            this.ignore = false;
    57        
    58    }

    59    
    60    protected String selectEncoding(ServletRequest request) {
    61        
    62        return (this.encoding);
    63        
    64    }

    65    
    66}

    第二步,修改CAS登陸驗(yàn)證頁(yè)面的編碼,如果你沒(méi)換過(guò)這個(gè)主題的話(huà),默認(rèn)的是修改WEB-INF\view\jsp\default\ui\casLoginView.jsp文件,在最上面加上<%@ page pageEncoding="gb2312"%>。這里要特別注意一下,這個(gè)頁(yè)面的編碼要和上面XML文件里寫(xiě)的編碼一致。

    第三步,修改驗(yàn)證成功后做跳轉(zhuǎn)的頁(yè)面。也就是WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp文件,在最上面加上<%@ page pageEncoding="UTF-8"%>。這里特別注意的是這個(gè)頁(yè)面的編碼要和你跳轉(zhuǎn)過(guò)去的那個(gè)頁(yè)面的編碼一致,換句話(huà)說(shuō),客戶(hù)端的驗(yàn)證頁(yè)面的編碼要和這個(gè)地方的一致,不一致的話(huà),要轉(zhuǎn)換一下。

    經(jīng)過(guò)這三步之后,理論上講就已經(jīng)可以驗(yàn)證通過(guò)了。



    眼鏡蛇

    posted on 2009-07-12 13:02 眼鏡蛇 閱讀(2894) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): JavaLiferaySSO

    評(píng)論

    # re: CAS單點(diǎn)登陸,中文用戶(hù)名無(wú)法驗(yàn)證解決方案[未登錄](méi) 2011-07-21 14:27 nieyong

    感覺(jué)很羅嗦的。
    CAS默認(rèn)是UTF-8編碼,可以不添加Filter,原CAS頁(yè)面也可以保持不變。
    唯一需要變化的是
    WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp需要和跳轉(zhuǎn)過(guò)去的那個(gè)頁(yè)面的編碼一致。
    添加:pageEncoding="UTF-8" 或 pageEncoding="GBK" 根據(jù)實(shí)際情況而定。
      回復(fù)  更多評(píng)論   

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 免费在线观看一级片| 亚洲午夜久久久久久久久电影网| 热久久这里是精品6免费观看 | 免费无码国产V片在线观看| 久久久久国产精品免费网站| 亚洲天堂在线播放| 777成影片免费观看| 一边摸一边桶一边脱免费视频| 亚洲AV无码一区二区三区系列| 国产成人精品免费视频软件| 99视频全部免费精品全部四虎| 99久久成人国产精品免费| 国产在亚洲线视频观看| 亚洲欧洲精品无码AV| 免费亚洲视频在线观看| 免费成人在线电影| 岛国精品一区免费视频在线观看| 亚洲视频精品在线观看| 国产成A人亚洲精V品无码性色 | 国产成人亚洲精品| 免费人成在线观看视频播放| 成人毛片18女人毛片免费96| 中文字幕高清免费不卡视频| 国产亚洲精品国产福利在线观看| 亚洲欧美日本韩国| 亚洲日韩中文字幕无码一区| 亚洲人成在线免费观看| 亚洲精品国产肉丝袜久久| 中文字幕亚洲综合久久| 亚洲人成电影在线天堂| 亚洲大片在线观看| 国产免费人视频在线观看免费| 手机看片国产免费永久| 成人免费777777被爆出| 国产99久久久久久免费看| 国产成人亚洲综合一区| 亚洲AV日韩精品久久久久久| 久久精品视频亚洲| 亚洲综合小说久久另类区| 久久久久久亚洲Av无码精品专口 | 黄色免费网址大全|