• R/O
  • SSH
  • HTTPS

sso-proxy: Commit


Commit MetaInfo

Revisão8 (tree)
Hora2008-06-30 12:57:22
Autorshinsuke

Mensagem de Log

added CookieAuthFilter.

Mudança Sumário

Diff

--- sso-proxy/trunk/src/main/java/jp/sf/ssoproxy/filter/CookieAuthFilter.java (nonexistent)
+++ sso-proxy/trunk/src/main/java/jp/sf/ssoproxy/filter/CookieAuthFilter.java (revision 8)
@@ -0,0 +1,19 @@
1+package jp.sf.ssoproxy.filter;
2+
3+import javax.servlet.http.Cookie;
4+import javax.servlet.http.HttpServletRequest;
5+
6+public class CookieAuthFilter extends AbstractAuthFilter {
7+
8+ public String getRemoteUser(HttpServletRequest request) {
9+ Cookie[] cookies = request.getCookies();
10+ if (cookies != null) {
11+ for (int i = 0; i < cookies.length; i++) {
12+ if (currentUserKey.equals(cookies[i].getName())) {
13+ return cookies[i].getValue();
14+ }
15+ }
16+ }
17+ return null;
18+ }
19+}
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
--- sso-proxy/trunk/src/main/java/jp/sf/ssoproxy/filter/SessionAuthFilter.java (revision 7)
+++ sso-proxy/trunk/src/main/java/jp/sf/ssoproxy/filter/SessionAuthFilter.java (revision 8)
@@ -1,81 +1,10 @@
11 package jp.sf.ssoproxy.filter;
22
3-import java.io.IOException;
4-import java.util.Locale;
5-
6-import javax.servlet.Filter;
7-import javax.servlet.FilterChain;
8-import javax.servlet.FilterConfig;
9-import javax.servlet.ServletException;
10-import javax.servlet.ServletRequest;
11-import javax.servlet.ServletResponse;
123 import javax.servlet.http.HttpServletRequest;
13-import javax.servlet.http.HttpServletResponse;
144
15-import jp.sf.ssoproxy.SSOProxyConstraints;
16-import jp.sf.ssoproxy.util.ErrorHandlingUtil;
5+public class SessionAuthFilter extends AbstractAuthFilter {
176
18-public class SessionAuthFilter implements Filter {
19- private String errorPage;
20-
21- private Locale systemLocale;
22-
23- public void init(FilterConfig config) throws ServletException {
24- // set an error page
25- errorPage = config.getInitParameter(SSOProxyConstraints.ERROR_JSP_KEY);
26- if (errorPage == null) {
27- errorPage = SSOProxyConstraints.DEFAULT_ERROR_JSP;
28- }
29- // set a system locale
30- String value = config
31- .getInitParameter(SSOProxyConstraints.SYSTEM_LOCALE_KEY);
32- if (value != null) {
33- try {
34- String[] values = value.split("_");
35- if (values.length == 3) {
36- systemLocale = new Locale(values[0], values[1], values[2]);
37- } else if (values.length == 2) {
38- systemLocale = new Locale(values[0], values[1]);
39- } else if (values.length == 1) {
40- systemLocale = new Locale(values[0]);
41- } else {
42- systemLocale = Locale.ENGLISH;
43- }
44- } catch (RuntimeException e) {
45- systemLocale = Locale.ENGLISH;
46- }
47- } else {
48- systemLocale = Locale.ENGLISH;
49- }
7+ public String getRemoteUser(HttpServletRequest request) {
8+ return (String) request.getSession().getAttribute(currentUserKey);
509 }
51-
52- public void destroy() {
53-
54- }
55-
56- public void doFilter(ServletRequest request, ServletResponse response,
57- FilterChain chain) throws IOException, ServletException {
58-
59- if (request instanceof HttpServletRequest
60- && response instanceof HttpServletResponse) {
61- HttpServletRequest httpRequest = (HttpServletRequest) request;
62- String remoteUser = (String) httpRequest.getSession().getAttribute(
63- SSOProxyConstraints.CURRENT_REMOTE_USER);
64- if (remoteUser != null) {
65- chain.doFilter(request, response);
66- } else {
67- // error
68- String erroCode = "000008";
69- ErrorHandlingUtil.printLog(erroCode, null, systemLocale);
70- ErrorHandlingUtil.forwardErrorPage(
71- (HttpServletRequest) request,
72- (HttpServletResponse) response, erroCode, null,
73- errorPage);
74- }
75- } else {
76- //TODO redirect?
77- response.getWriter().write("Not supported.");
78- }
79- }
80-
8110 }
--- sso-proxy/trunk/src/main/java/jp/sf/ssoproxy/filter/AbstractAuthFilter.java (nonexistent)
+++ sso-proxy/trunk/src/main/java/jp/sf/ssoproxy/filter/AbstractAuthFilter.java (revision 8)
@@ -0,0 +1,92 @@
1+package jp.sf.ssoproxy.filter;
2+
3+import java.io.IOException;
4+import java.util.Locale;
5+
6+import javax.servlet.Filter;
7+import javax.servlet.FilterChain;
8+import javax.servlet.FilterConfig;
9+import javax.servlet.ServletException;
10+import javax.servlet.ServletRequest;
11+import javax.servlet.ServletResponse;
12+import javax.servlet.http.HttpServletRequest;
13+import javax.servlet.http.HttpServletResponse;
14+
15+import jp.sf.ssoproxy.SSOProxyConstraints;
16+import jp.sf.ssoproxy.util.ErrorHandlingUtil;
17+
18+public abstract class AbstractAuthFilter implements Filter {
19+
20+ protected String errorPage;
21+
22+ protected Locale systemLocale;
23+
24+ protected String currentUserKey;
25+
26+ public void init(FilterConfig config) throws ServletException {
27+ // set an current user key
28+ currentUserKey = config
29+ .getInitParameter(SSOProxyConstraints.CURRENT_REMOTE_USER_KEY);
30+ if (currentUserKey == null) {
31+ currentUserKey = SSOProxyConstraints.CURRENT_REMOTE_USER;
32+ }
33+
34+ // set an error page
35+ errorPage = config.getInitParameter(SSOProxyConstraints.ERROR_JSP_KEY);
36+ if (errorPage == null) {
37+ errorPage = SSOProxyConstraints.DEFAULT_ERROR_JSP;
38+ }
39+
40+ // set a system locale
41+ String value = config
42+ .getInitParameter(SSOProxyConstraints.SYSTEM_LOCALE_KEY);
43+ if (value != null) {
44+ try {
45+ String[] values = value.split("_");
46+ if (values.length == 3) {
47+ systemLocale = new Locale(values[0], values[1], values[2]);
48+ } else if (values.length == 2) {
49+ systemLocale = new Locale(values[0], values[1]);
50+ } else if (values.length == 1) {
51+ systemLocale = new Locale(values[0]);
52+ } else {
53+ systemLocale = Locale.ENGLISH;
54+ }
55+ } catch (RuntimeException e) {
56+ systemLocale = Locale.ENGLISH;
57+ }
58+ } else {
59+ systemLocale = Locale.ENGLISH;
60+ }
61+ }
62+
63+ public void destroy() {
64+
65+ }
66+
67+ public void doFilter(ServletRequest request, ServletResponse response,
68+ FilterChain chain) throws IOException, ServletException {
69+
70+ if (request instanceof HttpServletRequest
71+ && response instanceof HttpServletResponse) {
72+ HttpServletRequest httpRequest = (HttpServletRequest) request;
73+ String remoteUser = getRemoteUser(httpRequest);
74+ if (remoteUser != null) {
75+ chain.doFilter(request, response);
76+ } else {
77+ // error
78+ String erroCode = "000008";
79+ ErrorHandlingUtil.printLog(erroCode, null, systemLocale);
80+ ErrorHandlingUtil.forwardErrorPage(
81+ (HttpServletRequest) request,
82+ (HttpServletResponse) response, erroCode, null,
83+ errorPage);
84+ }
85+ } else {
86+ //TODO redirect?
87+ response.getWriter().write("Not supported.");
88+ }
89+ }
90+
91+ public abstract String getRemoteUser(HttpServletRequest request);
92+}
\ No newline at end of file
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
--- sso-proxy/trunk/src/main/java/jp/sf/ssoproxy/SSOProxyConstraints.java (revision 7)
+++ sso-proxy/trunk/src/main/java/jp/sf/ssoproxy/SSOProxyConstraints.java (revision 8)
@@ -57,4 +57,6 @@
5757
5858 public static final String DEFAULT_ERROR_JSP = "/error.jsp";
5959
60+ public static final String CURRENT_REMOTE_USER_KEY = "currentUserKey";
61+
6062 }
Show on old repository browser