java类javax.servlet.ServletResponse的实例源码

JwtFilter.java 文件源码 项目:IPPR2016 阅读 31 收藏 0 点赞 0 评论 0
@Override
public void doFilter(final ServletRequest req, final ServletResponse res, final FilterChain chain)
    throws IOException, ServletException {
  final HttpServletRequest request = (HttpServletRequest) req;

  final String authHeader = request.getHeader("Authorization");
  if (authHeader == null || !authHeader.startsWith("Bearer ")) {
    ExceptionUtils.createUnauthorizedException("Missing or invalid Authorization header.", res);
    return;
  }

  try {
    final String token = authHeader.substring(7); // The part after "Bearer "
    final Claims claims =
        Jwts.parser().setSigningKey("secretkey").parseClaimsJws(token).getBody();
    request.setAttribute("claims", claims);
  } catch (final Exception e) {
    ExceptionUtils.createUnauthorizedException("Invalid token", res);
    return;
  }

  chain.doFilter(req, res);
}
DynamicUrlPermissionsShiroFilter.java 文件源码 项目:xproject 阅读 31 收藏 0 点赞 0 评论 0
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    try {
        getDelegateShrioFilter().doFilter(request, response, chain);
    } catch (UnknownSessionException e) {
        System.out.println(e);
        if(HttpUtils.isAsynRequest((HttpServletRequest) request)){
            Result<Object> result = new Result<Object>();
            result.setSuccess(false);
            result.setMessage("对不起,您的会话已过期,请重新登录!");
            HttpUtils.asynOutputResponse((HttpServletResponse) response, ContentType.APPLICATION_JSON, JsonUtils.object2Json(result));
        }else{
            throw e;
        }
    }
}
SimpleAuthFilter.java 文件源码 项目:simpleauth 阅读 35 收藏 0 点赞 0 评论 0
@Override
public void doFilter(final ServletRequest request, final ServletResponse response,
        final FilterChain chain) throws IOException, ServletException {
    if (request instanceof HttpServletRequest) {
        final HttpServletRequest req = ((HttpServletRequest) request);
        final HttpServletResponse res = ((HttpServletResponse) response);
        final String header = req.getHeader(SimpleAuth.HTTP_HEADER);
        if (header != null) {
            final String[] sp = header.split(" ");
            // Authentication: torch TOKEN
            if (sp.length == 2) {
                final String scheme = sp[0], param = sp[1];
                if (SimpleAuth.SCHEME.equals(scheme)) {
                    if (sa.verify(param)) {
                        chain.doFilter(request, response);
                        return;
                    }
                }
            }
        }
        if (!res.isCommitted()) {
            final String err = "FORBIDDEN\r\n";
            res.reset();
            res.setStatus(HttpServletResponse.SC_FORBIDDEN);
            res.setContentLength(err.length());
            res.setContentType("text/plain");
            res.setCharacterEncoding("ISO-8859-1");
            res.setHeader("Pragma", "no-cache");
            res.setHeader("Cache-Control", "private, no-cache, no-store, must-revalidate");
            res.setHeader(getClass().getSimpleName(), "deny");
            res.getWriter().print(err);
            return;
        }
    }
    if (!response.isCommitted()) {
        response.reset();
    }
    throw new ServletException(new UnsupportedOperationException());
}
JWTFilter.java 文件源码 项目:klask-io 阅读 33 收藏 0 点赞 0 评论 0
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
    throws IOException, ServletException {
    try {
        HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
        String jwt = resolveToken(httpServletRequest);
        if (StringUtils.hasText(jwt)) {
            if (this.tokenProvider.validateToken(jwt)) {
                Authentication authentication = this.tokenProvider.getAuthentication(jwt);
                SecurityContextHolder.getContext().setAuthentication(authentication);
            }
        }
        filterChain.doFilter(servletRequest, servletResponse);
    } catch (ExpiredJwtException eje) {
        log.info("Security exception for user {} - {}", eje.getClaims().getSubject(), eje.getMessage());
        ((HttpServletResponse) servletResponse).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
    }
}
AgentManagerServlet.java 文件源码 项目:parabuild-ci 阅读 29 收藏 0 点赞 0 评论 0
/**
 * Will accept requests only from build manager.
 */
public void service(final ServletRequest request, final ServletResponse response) throws IOException, ServletException {

  // Prohibit non-remote manager address
  final HttpServletRequest httpServletRequest = (HttpServletRequest) request;
  final String remoteAddr = httpServletRequest.getRemoteAddr();
  if (!DISABLE_SOURCE_IP_ADDRESS_CHECK && !remoteAddr.equals(BUILD_MANAGER_ADDRESS)) {
    final HttpServletResponse httpServletResponce = (HttpServletResponse) response;
    httpServletResponce.setStatus(HttpServletResponse.SC_FORBIDDEN);
    IoUtils.closeHard(request.getInputStream());
    IoUtils.closeHard(response.getOutputStream());
    return;
  }

  // Execute normally
  super.service(request, response);
}
TestJiraMonitoringFilter.java 文件源码 项目:jira-confluence-javamelody 阅读 86 收藏 0 点赞 0 评论 0
/** Test.
 * @throws ServletException e
 * @throws IOException e */
@Test
public void testNoHttp() throws ServletException, IOException {
    // non http
    final FilterChain servletChain = createNiceMock(FilterChain.class);
    final ServletRequest servletRequest = createNiceMock(ServletRequest.class);
    final ServletResponse servletResponse = createNiceMock(ServletResponse.class);
    replay(config);
    replay(context);
    replay(servletRequest);
    replay(servletResponse);
    replay(servletChain);
    jiraMonitoringFilter.init(config);
    jiraMonitoringFilter.doFilter(servletRequest, servletResponse, servletChain);
    verify(config);
    verify(context);
    verify(servletRequest);
    verify(servletResponse);
    verify(servletChain);
}
AWSXRayServletFilter.java 文件源码 项目:aws-xray-sdk-java 阅读 30 收藏 0 点赞 0 评论 0
public void postFilter(ServletRequest request, ServletResponse response) {
    Segment segment = recorder.getCurrentSegment();
    if (null != segment) {
        HttpServletResponse httpServletResponse = castServletResponse(response);

        if (null != httpServletResponse) {
            Map<String, Object> responseAttributes = new HashMap<String, Object>();

            int responseCode = httpServletResponse.getStatus();
            switch (responseCode/100) {
                case 4:
                    segment.setError(true);
                    if (responseCode == 429) {
                        segment.setThrottle(true);
                    }
                    break;
                case 5:
                    segment.setFault(true);
                    break;
                default:
                    break;
            }
            responseAttributes.put("status", responseCode);


            Optional<Integer> contentLength = getContentLength(httpServletResponse);
            if (contentLength.isPresent()) {
                responseAttributes.put("content_length", contentLength.get());
            }

            segment.putHttp("response", responseAttributes);
        }

        recorder.endSegment();
    }
}
RememberMeFilter.java 文件源码 项目:webside 阅读 30 收藏 0 点赞 0 评论 0
@Override
protected boolean isAccessAllowed(ServletRequest request,
        ServletResponse response, Object mappedValue) {
    Subject subject = getSubject(request, response);

    // 如果 isAuthenticated 为 false 证明不是登录过的,同时 isRememberd 为true 证明是没登陆直接通过记住我功能进来的
    if (!subject.isAuthenticated() && subject.isRemembered()) {
        // 获取session的USERSESSION属性来看session是不是空的
        if(null == ShiroAuthenticationManager.getSessionAttribute(ShiroUtils.USERSESSION))
        {
            // 初始化
            UserEntity userEntity = (UserEntity) subject.getPrincipal();
            ShiroAuthenticationManager.setSessionAttribute(ShiroUtils.USERSESSION, userEntity);
        }
    }

    // 这个方法本来只返回 subject.isAuthenticated() 现在我们加上 subject.isRemembered()
    // 让它同时也兼容remember这种情况
    return subject.isAuthenticated() || subject.isRemembered();
}
AuthorizationFilterTest.java 文件源码 项目:oscm 阅读 43 收藏 0 点赞 0 评论 0
@Test
public void handleChangeUserPasswordRequest_errorAccountNotLocked()
        throws Exception {
    // given
    doReturn(Boolean.TRUE).when(authReqDataMock).isRequestedToChangePwd();
    doReturn("secret").when(authReqDataMock).getNewPassword();
    doReturn("secret").when(authReqDataMock).getNewPassword2();
    doReturn(userDetails).when(identityServiceMock).getUser(
            any(VOUser.class));
    doReturn("error.changePassword").when(requestMock).getAttribute(
            Constants.REQ_ATTR_ERROR_KEY);

    // when
    boolean result = authFilter
            .handleChangeUserPasswordRequest(chainMock, requestMock,
                    responseMock, authReqDataMock, identityServiceMock);

    // then
    assertFalse("Unsuccessful password change", result);
    verify(authFilter, never()).sendRedirect(any(HttpServletRequest.class),
            any(HttpServletResponse.class), anyString());
    verify(chainMock, times(2)).doFilter(any(ServletRequest.class),
            any(ServletResponse.class));
}
MyShiroFilterFactoryBean.java 文件源码 项目:springboot-shiro-cas-mybatis 阅读 36 收藏 0 点赞 0 评论 0
@Override
public void doFilterInternal(ServletRequest servletRequest, ServletResponse servletResponse,
        FilterChain chain)
        throws ServletException, IOException {
    HttpServletRequest request = (HttpServletRequest)servletRequest;
    String str = request.getRequestURI().toLowerCase();
    boolean flag = true;
    int idx = 0;
    if ((idx = str.indexOf(".")) > 0){
        str = str.substring(idx);
        if (ignoreExt.contains(str.toLowerCase())){
            flag = false;
        }
    }
    if (flag){
        super.doFilterInternal(servletRequest, servletResponse, chain);
    } else {
        chain.doFilter(servletRequest, servletResponse);
    }
}
SafeDispatcherServletTests.java 文件源码 项目:cas4.0.x-server-wechat 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void testService() throws ServletException, IOException {
    this.safeServlet.init(this.mockConfig);

    ServletRequest mockRequest = new MockHttpServletRequest();
    ServletResponse mockResponse = new MockHttpServletResponse();

    try {
        this.safeServlet.service(mockRequest, mockResponse);
    } catch (final ApplicationContextException ace) {
        // good, threw the exception we expected.
        return;
    }

    fail("Should have thrown ApplicationContextException since init() failed.");
}
CheckSessionFilter.java 文件源码 项目:yadaframework 阅读 34 收藏 0 点赞 0 评论 0
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
    // FIXME per qualche strana ragione la sessione non scade se questa url viene ripetutamente chiamata!
    // Per ovviare al problema, faccio il controllo via js con un timeout pari a quello di sessione, in modo che quando arriva è già scaduta,
    // e male che vada la sessione dura il doppio del session timeout impostato (metti che un ajax rinfresca subito dopo il page load per cui il js che entra qui si trova la sessione ancora attiva e la rinfresca)
    if ((servletRequest instanceof HttpServletRequest) && (servletResponse instanceof HttpServletResponse)) {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        String requestUri = request.getRequestURI();
        if (requestUri.endsWith(COMMAND)) {
            HttpSession session = request.getSession(false);
            String result = "expired";
            if (session!=null) {
                result = "active";
            }
            if (log.isDebugEnabled()) {
                log.debug(COMMAND + " returned " + result + (session!=null?" "+session.getId():""));
            }
            Writer out = response.getWriter();
            out.write(result);
            out.close();
            return;
        } 
    }
    filterChain.doFilter(servletRequest, servletResponse);
}
StaticUserWebFilter.java 文件源码 项目:ditb 阅读 46 收藏 0 点赞 0 评论 0
@Override
public void doFilter(ServletRequest request, ServletResponse response,
                     FilterChain chain
                     ) throws IOException, ServletException {
  HttpServletRequest httpRequest = (HttpServletRequest) request;
  // if the user is already authenticated, don't override it
  if (httpRequest.getRemoteUser() != null) {
    chain.doFilter(request, response);
  } else {
    HttpServletRequestWrapper wrapper = 
        new HttpServletRequestWrapper(httpRequest) {
      @Override
      public Principal getUserPrincipal() {
        return user;
      }
      @Override
      public String getRemoteUser() {
        return username;
      }
    };
    chain.doFilter(wrapper, response);
  }
}
CheckSessionOutFilter.java 文件源码 项目:ssm-web 阅读 33 收藏 0 点赞 0 评论 0
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest hsrq = (HttpServletRequest) request;
    HttpServletResponse hsrp = (HttpServletResponse) response;
    String clientType = hsrq.getParameter("clientType");
    if ("WORD".equals(clientType)) {
        chain.doFilter(request, response);
    } else {
        SessionUser person = null;
        String reqPage = hsrq.getServletPath();
        if (!reqPage.trim().equals("/login.do") && !reqPage.trim().equals("/login_out.do")
                ) {

            person = (SessionUser) hsrq.getSession().getAttribute(SysConstants.SESSION_USER_KEY);
            if (person == null) {
                hsrp.sendRedirect("login.do");
                return;
            }
        }
        chain.doFilter(request, response);
    }

}
SampleFelixFilter.java 文件源码 项目:aem-osgi-annotation-demo 阅读 30 收藏 0 点赞 0 评论 0
@Override
public void doFilter(final ServletRequest request, final ServletResponse response,
        final FilterChain filterChain) throws IOException, ServletException {

    final SlingHttpServletRequest slingRequest = (SlingHttpServletRequest) request;
    logger.info("Felix Filter: request for {}", slingRequest.getRequestPathInfo().getResourcePath());

    filterChain.doFilter(request, response);
}
SimpleCORSFilter.java 文件源码 项目:demo-spring-boot-security-oauth2 阅读 36 收藏 0 点赞 0 评论 0
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    HttpServletResponse response = (HttpServletResponse) res;
    HttpServletRequest request = (HttpServletRequest) req;
    String originHeader = request.getHeader("Origin");
    response.setHeader("Access-Control-Allow-Origin", originHeader);
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Methods", "*");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Key, Authorization");

    if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
        response.setStatus(HttpServletResponse.SC_OK);
    } else {
        chain.doFilter(req, res);
    }

}
FormAuthenticationWithLockFilter.java 文件源码 项目:DWSurvey 阅读 34 收藏 0 点赞 0 评论 0
@Override
public boolean executeLogin(ServletRequest request, ServletResponse response) throws Exception {
    AuthenticationToken token = createToken(request, response);
    if (token == null) {
        String msg = "createToken method implementation returned null. A valid non-null AuthenticationToken "
                + "must be created in order to execute a login attempt.";
        throw new IllegalStateException(msg);
    }
    if (checkIfAccountLocked(request)) {
        return onLoginFailure(token, new ExcessiveAttemptsException(), request, response);
    } else {
        if (!doLogin(request, response, token)) {
            resetAccountLock(getUsername(request));
            return false;
        }
        return true;
    }
}
InstanceSupport.java 文件源码 项目:tomcat7 阅读 38 收藏 0 点赞 0 评论 0
/**
 * Notify all lifecycle event listeners that a particular event has
 * occurred for this Container.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param servlet The relevant Servlet for this event
 * @param request The servlet request we are processing
 * @param response The servlet response we are processing
 * @param exception Exception that occurred
 */
public void fireInstanceEvent(String type, Servlet servlet,
                              ServletRequest request,
                              ServletResponse response,
                              Throwable exception) {

    if (listeners.length == 0)
        return;

    InstanceEvent event = new InstanceEvent(wrapper, servlet, type,
                                            request, response, exception);
    InstanceListener interested[] = listeners;
    for (int i = 0; i < interested.length; i++)
        interested[i].instanceEvent(event);

}
TestMimeHeaders.java 文件源码 项目:apache-tomcat-7.0.73-with-comment 阅读 36 收藏 0 点赞 0 评论 0
private void setupHeadersTest(Tomcat tomcat) {
    Context ctx = tomcat.addContext("", getTemporaryDirectory()
            .getAbsolutePath());
    Tomcat.addServlet(ctx, "servlet", new HttpServlet() {
        private static final long serialVersionUID = 1L;

        @Override
        public void service(ServletRequest req, ServletResponse res)
                throws ServletException, IOException {
            res.setContentType("text/plain; charset=ISO-8859-1");
            res.getWriter().write("OK");
        }
    });
    ctx.addServletMapping("/", "servlet");

    alv = new HeaderCountLogValve();
    tomcat.getHost().getPipeline().addValve(alv);
}
ActionDispatcherFilter.java 文件源码 项目:EasyController 阅读 36 收藏 0 点赞 0 评论 0
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) resp;

    request.setCharacterEncoding(encoding);
    response.setCharacterEncoding(encoding);

    String target = request.getRequestURI();
    if (contextPathLength != 0) {
        target = target.substring(contextPathLength);
    }

    boolean handle = actionHandler.handle(target, request, response);

    if (!handle) {// 没有处理则放行
        chain.doFilter(request, response);
    }
}
ExpiresFilter.java 文件源码 项目:lazycat 阅读 36 收藏 0 点赞 0 评论 0
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {
    if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        HttpServletResponse httpResponse = (HttpServletResponse) response;

        if (response.isCommitted()) {
            if (log.isDebugEnabled()) {
                log.debug(sm.getString("expiresFilter.responseAlreadyCommited", httpRequest.getRequestURL()));
            }
            chain.doFilter(request, response);
        } else {
            XHttpServletResponse xResponse = new XHttpServletResponse(httpRequest, httpResponse);
            chain.doFilter(request, xResponse);
            if (!xResponse.isWriteResponseBodyStarted()) {
                // Empty response, manually trigger
                // onBeforeWriteResponseBody()
                onBeforeWriteResponseBody(httpRequest, xResponse);
            }
        }
    } else {
        chain.doFilter(request, response);
    }
}
InstanceSupport.java 文件源码 项目:jerrydog 阅读 43 收藏 0 点赞 0 评论 0
/**
 * Notify all lifecycle event listeners that a particular event has
 * occurred for this Container.  The default implementation performs
 * this notification synchronously using the calling thread.
 *
 * @param type Event type
 * @param servlet The relevant Servlet for this event
 * @param request The servlet request we are processing
 * @param response The servlet response we are processing
 */
public void fireInstanceEvent(String type, Servlet servlet,
                              ServletRequest request,
                              ServletResponse response) {

    if (listeners.length == 0)
        return;

    InstanceEvent event = new InstanceEvent(wrapper, servlet, type,
                                            request, response);
    InstanceListener interested[] = null;
    synchronized (listeners) {
        interested = (InstanceListener[]) listeners.clone();
    }
    for (int i = 0; i < interested.length; i++)
        interested[i].instanceEvent(event);

}
BeforeInvocationFilter.java 文件源码 项目:lemon 阅读 33 收藏 0 点赞 0 评论 0
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    ProxyFilterChain proxyFilterChain = new ProxyFilterChain();

    for (Filter filter : filters) {
        proxyFilterChain.setInvokeNextFilter(false);
        filter.doFilter(request, response, proxyFilterChain);

        if (!proxyFilterChain.isInvokeNextFilter()) {
            return;
        }
    }

    chain.doFilter(request, response);
}
JspFactoryImpl.java 文件源码 项目:lams 阅读 34 收藏 0 点赞 0 评论 0
PrivilegedGetPageContext(JspFactoryImpl factory, Servlet servlet,
        ServletRequest request, ServletResponse response, String errorPageURL,
        boolean needsSession, int bufferSize, boolean autoflush) {
    this.factory = factory;
    this.servlet = servlet;
    this.request = request;
    this.response = response;
    this.errorPageURL = errorPageURL;
    this.needsSession = needsSession;
    this.bufferSize = bufferSize;
    this.autoflush = autoflush;
}
ShiroAjaxSessionFilter.java 文件源码 项目:xmanager 阅读 30 收藏 0 点赞 0 评论 0
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
    HttpServletRequest req = WebUtils.toHttp(request);
    String xmlHttpRequest = req.getHeader("X-Requested-With");
    if (StringUtils.isNotBlank(xmlHttpRequest)) {
        if (xmlHttpRequest.equalsIgnoreCase("XMLHttpRequest")) {
            HttpServletResponse res = WebUtils.toHttp(response);
            // 采用res.sendError(401);在Easyui中会处理掉error,$.ajaxSetup中监听不到
            res.setHeader("oauthstatus", "401");
            return false;
        }
    }
    return super.onAccessDenied(request, response);
}
TokenFilter.java 文件源码 项目:automat 阅读 29 收藏 0 点赞 0 评论 0
public void doFilter(ServletRequest servletRequest, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    if (isWhiteReq(request.getRequestURI())) {
        chain.doFilter(request, response);
    } else {
        String token = request.getHeader("token");
        if (StringUtils.isNotBlank(token)) {
            try {
                Token tokenInfo = TokenUtil.getTokenInfo(token);
                if (tokenInfo != null) {
                    Long now = System.currentTimeMillis();
                    if (now - tokenInfo.getTime() < 1000 * 60 * 30) {
                        String value = tokenInfo.getValue();
                        TokenUtil.setTokenInfo(token, value);
                        WebUtil.saveCurrentUser(request, value);
                    }
                }
            } catch (Exception e) {
                logger.error("token检查发生异常:", e);
            }
        }
        // 响应
        if (DataUtil.isEmpty(WebUtil.getCurrentUser(request))) {
            response.setContentType("text/html; charset=UTF-8");
            Map<String, Object> modelMap = InstanceUtil.newLinkedHashMap();
            modelMap.put("httpCode", HttpCode.UNAUTHORIZED.value());
            modelMap.put("msg", HttpCode.UNAUTHORIZED.msg());
            modelMap.put("timestamp", System.currentTimeMillis());
            PrintWriter out = response.getWriter();
            out.println(JSON.toJSONString(modelMap));
            out.flush();
            out.close();
        } else {
            chain.doFilter(request, response);
        }
    }
}
ProxyFilter.java 文件源码 项目:lemon 阅读 29 收藏 0 点赞 0 评论 0
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    if (enable) {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;
        String contextPath = req.getContextPath();
        String requestUri = req.getRequestURI();
        String path = requestUri.substring(contextPath.length());

        // 如果在黑名单中,直接略过
        if (isExcluded(path)) {
            chain.doFilter(request, response);

            return;
        }

        // 如果符合redirect规则,进行跳转
        if (urlPatternMatcher.shouldRedirect(path)) {
            res.sendRedirect(contextPath + path + "/");

            return;
        }

        // 如果都没问题,才会继续进行判断
        if (urlPatternMatcher.matches(path)) {
            filter.doFilter(request, response, chain);
        } else {
            chain.doFilter(request, response);
        }
    } else {
        chain.doFilter(request, response);
    }
}
CORSFilter.java 文件源码 项目:ServiceServer 阅读 38 收藏 0 点赞 0 评论 0
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest)request;
    String ori = req.getHeader("Origin");
    if (ori != null && allowedOrigins.contains(ori)) {
        HttpServletResponse res = (HttpServletResponse)response;
        res.setHeader("Access-Control-Allow-Origin", ori);
        res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        res.setHeader("Access-Control-Max-Age", "3600");
        res.setHeader("Access-Control-Allow-Headers", "x-requested-with");
        res.setHeader("Access-Control-Allow-Credentials", "true");
    }
    chain.doFilter(request, response);
}
RestAsyncListener.java 文件源码 项目:incubator-servicecomb-java-chassis 阅读 33 收藏 0 点赞 0 评论 0
@Override
public void onTimeout(AsyncEvent event) throws IOException {
  // in this time, maybe:
  // 1.invocation in executor's queue
  // 2.already executing in executor
  // 3.already send response
  // to avoid concurrent, must lock request
  ServletRequest request = event.getSuppliedRequest();
  HttpServletRequestEx requestEx = (HttpServletRequestEx) request.getAttribute(RestConst.REST_REQUEST);

  synchronized (requestEx) {
    ServletResponse response = event.getAsyncContext().getResponse();
    if (!response.isCommitted()) {
      LOGGER.error("Rest request timeout, method {}, path {}.", requestEx.getMethod(), requestEx.getRequestURI());
      // invocation in executor's queue
      response.setContentType(MediaType.APPLICATION_JSON);

      // we don't know if developers declared one statusCode in contract
      // so we use cse inner statusCode here
      ((HttpServletResponse) response).setStatus(ExceptionFactory.PRODUCER_INNER_STATUS_CODE);
      PrintWriter out = response.getWriter();
      out.write(TIMEOUT_MESSAGE);
      response.flushBuffer();
    }

    request.removeAttribute(RestConst.REST_REQUEST);
  }
}
LoginFilter.java 文件源码 项目:ChemistryAdministrativePortal 阅读 27 收藏 0 点赞 0 评论 0
/**
 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
 */
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    // TODO Auto-generated method stub
    // place your code here
    HttpServletRequest loginRequest = (HttpServletRequest) request;
    if((User)loginRequest.getSession().getAttribute("user") != null) {
        chain.doFilter(request, response);
    }

    else {
        loginRequest.getRequestDispatcher("/index.jsp").forward(request, response);
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号