CAS單點登陸,中文用戶名無法驗證解決方案
登陸名如果用中文的話,會出現亂碼,導致無法驗證通過。解決中文問題無非就是編碼問題,其中需要轉換編碼的有以下幾個地方.
第一,在Web.xml文件里加上Filter,對所有頁面進行一次編碼轉換.

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

下面是EncodingFilter類:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

第二步,修改CAS登陸驗證頁面的編碼,如果你沒換過這個主題的話,默認的是修改WEB-INF\view\jsp\default\ui\casLoginView.jsp文件,在最上面加上<%@ page pageEncoding="gb2312"%>。這里要特別注意一下,這個頁面的編碼要和上面XML文件里寫的編碼一致。
第三步,修改驗證成功后做跳轉的頁面。也就是WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp文件,在最上面加上<%@ page pageEncoding="UTF-8"%>。這里特別注意的是這個頁面的編碼要和你跳轉過去的那個頁面的編碼一致,換句話說,客戶端的驗證頁面的編碼要和這個地方的一致,不一致的話,要轉換一下。
經過這三步之后,理論上講就已經可以驗證通過了。
眼鏡蛇
posted on 2009-07-12 13:02 眼鏡蛇 閱讀(2878) 評論(1) 編輯 收藏 所屬分類: Java 、Liferay 、SSO