⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 relyingpartyfilter.java

📁 开源的OpenId的一个java实现
💻 JAVA
字号:
/* * Copyright 2005-2007 WSO2, Inc. (http://wso2.com) Licensed under the Apache * License, Version 2.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law * or agreed to in writing, software distributed under the License is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */package org.wso2.solutions.identity.relyingparty.servletfilter;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.ws.security.WSSConfig;import org.wso2.solutions.identity.relyingparty.TokenVerifierConstants;import org.wso2.solutions.identity.relyingparty.openid.OpenIDConsumer;import org.wso2.solutions.identity.relyingparty.openid.OpenIDUtil;import org.wso2.solutions.identity.relyingparty.saml.SAMLTokenConsumer;public class RelyingPartyFilter implements Filter {    private static Log log = LogFactory.getLog(RelyingPartyFilter.class);    public RelyingPartyData data = null;    static {        WSSConfig.getDefaultWSConfig();    }    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {        try {            String path = ((HttpServletRequest) request).getRequestURI();            if (log.isDebugEnabled()) {                log.debug("RequestURI : " + path);            }            String infoCardSignin = request.getParameter("InfoCardSignin");            boolean isOpenIDSignin = false;            isOpenIDSignin = OpenIDUtil                    .isOpenIDAuthetication((HttpServletRequest) request);            if (isOpenIDSignin) {                OpenIDConsumer.getInstance().setSessionAttributes(                        (HttpServletRequest) request);            }            if (log.isDebugEnabled()) {                log.debug("InfoCardSignin : " + infoCardSignin);            }            if (infoCardSignin != null && "Log in".equals(infoCardSignin)) {                if (log.isDebugEnabled()) {                    log.debug("InfoCardSignin=Log in");                }                String xmlToken = request.getParameter("xmlToken");                boolean isOpenIDInfoCardToken = OpenIDUtil                        .isOpenIDInfoCardToken(xmlToken);                if (isOpenIDInfoCardToken) {                    // We want to treat the decryption of OpenIDInfoCard token                    // differently.                    OpenIDConsumer.getInstance().setInfocardSessionAttributes(                            (HttpServletRequest) request);                } else if (xmlToken != null && !isOpenIDInfoCardToken) {                    SAMLTokenConsumer.getInstance()                            .setInfocardSessionAttributes(                                    (HttpServletRequest) request, xmlToken,                                    data);                } else {                    request.setAttribute(TokenVerifierConstants.ATTR_STATE,                            TokenVerifierConstants.STATE_FAILURE);                    request.setAttribute(TokenVerifierConstants.FAILURE_REASON,                            TokenVerifierConstants.REASON_TOKEN_MISSING);                }            }        } catch (Exception e) {            log.error("Error in token verification", e);            ByteArrayOutputStream baos = new ByteArrayOutputStream();            e.printStackTrace(new PrintWriter(baos));            request.setAttribute(TokenVerifierConstants.ATTR_STATE,                    TokenVerifierConstants.STATE_FAILURE);            request.setAttribute(TokenVerifierConstants.FAILURE_REASON,                    new String(baos.toByteArray()));        }        chain.doFilter(request, response);    }    public void init(FilterConfig config) throws ServletException {        data = new RelyingPartyData();        data.loadData(config);    }    public void destroy() {    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -