org.apache.catalina.authenticator.AuthenticatorBase Java Examples
The following examples show how to use
org.apache.catalina.authenticator.AuthenticatorBase.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: CoyoteAdapter.java From Tomcat8-Source-Read with MIT License | 5 votes |
private void doConnectorAuthenticationAuthorization(org.apache.coyote.Request req, Request request) { // Set the remote principal String username = req.getRemoteUser().toString(); if (username != null) { if (log.isDebugEnabled()) { log.debug(sm.getString("coyoteAdapter.authenticate", username)); } if (req.getRemoteUserNeedsAuthorization()) { Authenticator authenticator = request.getContext().getAuthenticator(); if (!(authenticator instanceof AuthenticatorBase)) { if (log.isDebugEnabled()) { log.debug(sm.getString("coyoteAdapter.authorize", username)); } // Custom authenticator that may not trigger authorization. // Do the authorization here to make sure it is done. request.setUserPrincipal( request.getContext().getRealm().authenticate(username)); } // If the Authenticator is an instance of AuthenticatorBase then // it will check req.getRemoteUserNeedsAuthorization() and // trigger authorization as necessary. It will also cache the // result preventing excessive calls to the Realm. } else { // The connector isn't configured for authorization. Create a // user without any roles using the supplied user name. request.setUserPrincipal(new CoyotePrincipal(username)); } } // Set the authorization type String authType = req.getAuthType().toString(); if (authType != null) { request.setAuthType(authType); } }
Example #2
Source File: TestRestCsrfPreventionFilter2.java From Tomcat8-Source-Read with MIT License | 5 votes |
private void setUpApplication() throws Exception { context = tomcat.addContext(CONTEXT_PATH_LOGIN, System.getProperty("java.io.tmpdir")); context.setSessionTimeout(SHORT_SESSION_TIMEOUT_MINS); Tomcat.addServlet(context, SERVLET_NAME, new TesterServlet()); context.addServletMappingDecoded(URI_PROTECTED, SERVLET_NAME); FilterDef filterDef = new FilterDef(); filterDef.setFilterName(FILTER_NAME); filterDef.setFilterClass(RestCsrfPreventionFilter.class.getCanonicalName()); filterDef.addInitParameter(FILTER_INIT_PARAM, REMOVE_CUSTOMER + "," + ADD_CUSTOMER); context.addFilterDef(filterDef); FilterMap filterMap = new FilterMap(); filterMap.setFilterName(FILTER_NAME); filterMap.addURLPatternDecoded(URI_CSRF_PROTECTED); context.addFilterMap(filterMap); SecurityCollection collection = new SecurityCollection(); collection.addPatternDecoded(URI_PROTECTED); SecurityConstraint sc = new SecurityConstraint(); sc.addAuthRole(ROLE); sc.addCollection(collection); context.addConstraint(sc); LoginConfig lc = new LoginConfig(); lc.setAuthMethod(METHOD); context.setLoginConfig(lc); AuthenticatorBase basicAuthenticator = new BasicAuthenticator(); context.getPipeline().addValve(basicAuthenticator); }
Example #3
Source File: TestWebSocketFrameClient.java From Tomcat8-Source-Read with MIT License | 5 votes |
@Test public void testConnectToBasicEndpoint() throws Exception { Tomcat tomcat = getTomcatInstance(); Context ctx = tomcat.addContext(URI_PROTECTED, null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMappingDecoded("/", "default"); SecurityCollection collection = new SecurityCollection(); collection.addPatternDecoded("/"); String utf8User = "test"; String utf8Pass = "123\u00A3"; // pound sign tomcat.addUser(utf8User, utf8Pass); tomcat.addRole(utf8User, ROLE); SecurityConstraint sc = new SecurityConstraint(); sc.addAuthRole(ROLE); sc.addCollection(collection); ctx.addConstraint(sc); LoginConfig lc = new LoginConfig(); lc.setAuthMethod("BASIC"); ctx.setLoginConfig(lc); AuthenticatorBase basicAuthenticator = new org.apache.catalina.authenticator.BasicAuthenticator(); ctx.getPipeline().addValve(basicAuthenticator); tomcat.start(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); clientEndpointConfig.getUserProperties().put(Constants.WS_AUTHENTICATION_USER_NAME, utf8User); clientEndpointConfig.getUserProperties().put(Constants.WS_AUTHENTICATION_PASSWORD, utf8Pass); echoTester(URI_PROTECTED, clientEndpointConfig); }
Example #4
Source File: TestWebSocketFrameClient.java From Tomcat8-Source-Read with MIT License | 5 votes |
@Test public void testConnectToDigestEndpoint() throws Exception { Tomcat tomcat = getTomcatInstance(); Context ctx = tomcat.addContext(URI_PROTECTED, null); ctx.addApplicationListener(TesterEchoServer.Config.class.getName()); Tomcat.addServlet(ctx, "default", new DefaultServlet()); ctx.addServletMappingDecoded("/", "default"); SecurityCollection collection = new SecurityCollection(); collection.addPatternDecoded("/*"); tomcat.addUser(USER, PWD); tomcat.addRole(USER, ROLE); SecurityConstraint sc = new SecurityConstraint(); sc.addAuthRole(ROLE); sc.addCollection(collection); ctx.addConstraint(sc); LoginConfig lc = new LoginConfig(); lc.setAuthMethod("DIGEST"); ctx.setLoginConfig(lc); AuthenticatorBase digestAuthenticator = new org.apache.catalina.authenticator.DigestAuthenticator(); ctx.getPipeline().addValve(digestAuthenticator); tomcat.start(); ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); clientEndpointConfig.getUserProperties().put(Constants.WS_AUTHENTICATION_USER_NAME, USER); clientEndpointConfig.getUserProperties().put(Constants.WS_AUTHENTICATION_PASSWORD,PWD); echoTester(URI_PROTECTED, clientEndpointConfig); }
Example #5
Source File: CoyoteAdapter.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
private void doConnectorAuthenticationAuthorization(org.apache.coyote.Request req, Request request) { // Set the remote principal String username = req.getRemoteUser().toString(); if (username != null) { if (log.isDebugEnabled()) { log.debug(sm.getString("coyoteAdapter.authenticate", username)); } if (req.getRemoteUserNeedsAuthorization()) { Authenticator authenticator = request.getContext().getAuthenticator(); if (authenticator == null) { // No security constraints configured for the application so // no need to authorize the user. Use the CoyotePrincipal to // provide the authenticated user. request.setUserPrincipal(new CoyotePrincipal(username)); } else if (!(authenticator instanceof AuthenticatorBase)) { if (log.isDebugEnabled()) { log.debug(sm.getString("coyoteAdapter.authorize", username)); } // Custom authenticator that may not trigger authorization. // Do the authorization here to make sure it is done. request.setUserPrincipal( request.getContext().getRealm().authenticate(username)); } // If the Authenticator is an instance of AuthenticatorBase then // it will check req.getRemoteUserNeedsAuthorization() and // trigger authorization as necessary. It will also cache the // result preventing excessive calls to the Realm. } else { // The connector isn't configured for authorization. Create a // user without any roles using the supplied user name. request.setUserPrincipal(new CoyotePrincipal(username)); } } // Set the authorization type String authtype = req.getAuthType().toString(); if (authtype != null) { request.setAuthType(authtype); } }
Example #6
Source File: TestRestCsrfPreventionFilter2.java From Tomcat7.0.67 with Apache License 2.0 | 5 votes |
private void setUpApplication() throws Exception { context = tomcat.addContext(CONTEXT_PATH_LOGIN, System.getProperty("java.io.tmpdir")); context.setSessionTimeout(SHORT_SESSION_TIMEOUT_MINS); Tomcat.addServlet(context, SERVLET_NAME, new TesterServlet()); context.addServletMapping(URI_PROTECTED, SERVLET_NAME); FilterDef filterDef = new FilterDef(); filterDef.setFilterName(FILTER_NAME); filterDef.setFilterClass(RestCsrfPreventionFilter.class.getCanonicalName()); filterDef.addInitParameter(FILTER_INIT_PARAM, REMOVE_CUSTOMER + "," + ADD_CUSTOMER); context.addFilterDef(filterDef); FilterMap filterMap = new FilterMap(); filterMap.setFilterName(FILTER_NAME); filterMap.addURLPattern(URI_CSRF_PROTECTED); context.addFilterMap(filterMap); SecurityCollection collection = new SecurityCollection(); collection.addPattern(URI_PROTECTED); SecurityConstraint sc = new SecurityConstraint(); sc.addAuthRole(ROLE); sc.addCollection(collection); context.addConstraint(sc); LoginConfig lc = new LoginConfig(); lc.setAuthMethod(METHOD); context.setLoginConfig(lc); AuthenticatorBase basicAuthenticator = new BasicAuthenticator(); context.getPipeline().addValve(basicAuthenticator); }
Example #7
Source File: CoyoteAdapter.java From tomcatsrc with Apache License 2.0 | 5 votes |
private void doConnectorAuthenticationAuthorization(org.apache.coyote.Request req, Request request) { // Set the remote principal String username = req.getRemoteUser().toString(); if (username != null) { if (log.isDebugEnabled()) { log.debug(sm.getString("coyoteAdapter.authenticate", username)); } if (req.getRemoteUserNeedsAuthorization()) { Authenticator authenticator = request.getContext().getAuthenticator(); if (authenticator == null) { // No security constraints configured for the application so // no need to authorize the user. Use the CoyotePrincipal to // provide the authenticated user. request.setUserPrincipal(new CoyotePrincipal(username)); } else if (!(authenticator instanceof AuthenticatorBase)) { if (log.isDebugEnabled()) { log.debug(sm.getString("coyoteAdapter.authorize", username)); } // Custom authenticator that may not trigger authorization. // Do the authorization here to make sure it is done. request.setUserPrincipal( request.getContext().getRealm().authenticate(username)); } // If the Authenticator is an instance of AuthenticatorBase then // it will check req.getRemoteUserNeedsAuthorization() and // trigger authorization as necessary. It will also cache the // result preventing excessive calls to the Realm. } else { // The connector isn't configured for authorization. Create a // user without any roles using the supplied user name. request.setUserPrincipal(new CoyotePrincipal(username)); } } // Set the authorization type String authtype = req.getAuthType().toString(); if (authtype != null) { request.setAuthType(authtype); } }
Example #8
Source File: TestRestCsrfPreventionFilter2.java From tomcatsrc with Apache License 2.0 | 5 votes |
private void setUpApplication() throws Exception { context = tomcat.addContext(CONTEXT_PATH_LOGIN, System.getProperty("java.io.tmpdir")); context.setSessionTimeout(SHORT_SESSION_TIMEOUT_MINS); Tomcat.addServlet(context, SERVLET_NAME, new TesterServlet()); context.addServletMapping(URI_PROTECTED, SERVLET_NAME); FilterDef filterDef = new FilterDef(); filterDef.setFilterName(FILTER_NAME); filterDef.setFilterClass(RestCsrfPreventionFilter.class.getCanonicalName()); filterDef.addInitParameter(FILTER_INIT_PARAM, REMOVE_CUSTOMER + "," + ADD_CUSTOMER); context.addFilterDef(filterDef); FilterMap filterMap = new FilterMap(); filterMap.setFilterName(FILTER_NAME); filterMap.addURLPattern(URI_CSRF_PROTECTED); context.addFilterMap(filterMap); SecurityCollection collection = new SecurityCollection(); collection.addPattern(URI_PROTECTED); SecurityConstraint sc = new SecurityConstraint(); sc.addAuthRole(ROLE); sc.addCollection(collection); context.addConstraint(sc); LoginConfig lc = new LoginConfig(); lc.setAuthMethod(METHOD); context.setLoginConfig(lc); AuthenticatorBase basicAuthenticator = new BasicAuthenticator(); context.getPipeline().addValve(basicAuthenticator); }
Example #9
Source File: ApplicationPushBuilder.java From Tomcat8-Source-Read with MIT License | 4 votes |
public ApplicationPushBuilder(Request catalinaRequest, HttpServletRequest request) { baseRequest = request; this.catalinaRequest = catalinaRequest; coyoteRequest = catalinaRequest.getCoyoteRequest(); // Populate the initial list of HTTP headers Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String headerName = headerNames.nextElement(); List<String> values = new ArrayList<>(); headers.put(headerName, values); Enumeration<String> headerValues = request.getHeaders(headerName); while (headerValues.hasMoreElements()) { values.add(headerValues.nextElement()); } } // Remove the headers headers.remove("if-match"); headers.remove("if-none-match"); headers.remove("if-modified-since"); headers.remove("if-unmodified-since"); headers.remove("if-range"); headers.remove("range"); headers.remove("expect"); headers.remove("authorization"); headers.remove("referer"); // Also remove the cookie header since it will be regenerated headers.remove("cookie"); // set the referer header StringBuffer referer = request.getRequestURL(); if (request.getQueryString() != null) { referer.append('?'); referer.append(request.getQueryString()); } addHeader("referer", referer.toString()); // Session Context context = catalinaRequest.getContext(); sessionCookieName = SessionConfig.getSessionCookieName(context); sessionPathParameterName = SessionConfig.getSessionUriParamName(context); HttpSession session = request.getSession(false); if (session != null) { sessionId = session.getId(); } if (sessionId == null) { sessionId = request.getRequestedSessionId(); } if (!request.isRequestedSessionIdFromCookie() && !request.isRequestedSessionIdFromURL() && sessionId != null) { Set<SessionTrackingMode> sessionTrackingModes = request.getServletContext().getEffectiveSessionTrackingModes(); addSessionCookie = sessionTrackingModes.contains(SessionTrackingMode.COOKIE); addSessionPathParameter = sessionTrackingModes.contains(SessionTrackingMode.URL); } else { addSessionCookie = request.isRequestedSessionIdFromCookie(); addSessionPathParameter = request.isRequestedSessionIdFromURL(); } // Cookies if (request.getCookies() != null) { for (Cookie requestCookie : request.getCookies()) { cookies.add(requestCookie); } } for (Cookie responseCookie : catalinaRequest.getResponse().getCookies()) { if (responseCookie.getMaxAge() < 0) { // Path information not available so can only remove based on // name. Iterator<Cookie> cookieIterator = cookies.iterator(); while (cookieIterator.hasNext()) { Cookie cookie = cookieIterator.next(); if (cookie.getName().equals(responseCookie.getName())) { cookieIterator.remove(); } } } else { cookies.add(new Cookie(responseCookie.getName(), responseCookie.getValue())); } } List<String> cookieValues = new ArrayList<>(1); cookieValues.add(generateCookieHeader(cookies, catalinaRequest.getContext().getCookieProcessor())); headers.put("cookie", cookieValues); // Authentication if (catalinaRequest.getPrincipal() != null) { if ((session == null) || catalinaRequest.getSessionInternal(false).getPrincipal() == null || !(context.getAuthenticator() instanceof AuthenticatorBase) || !((AuthenticatorBase) context.getAuthenticator()).getCache()) { // Set a username only if there is no session cache for the principal userName = catalinaRequest.getPrincipal().getName(); } setHeader("authorization", "x-push"); } }