Search in sources :

Example 81 with HttpSession

use of jakarta.servlet.http.HttpSession in project tomcat by apache.

the class RequestHeaderExample method doGet.

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings", request.getLocale());
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE html><html>");
    out.println("<head>");
    out.println("<meta charset=\"UTF-8\" />");
    String title = rb.getString("requestheader.title");
    out.println("<title>" + title + "</title>");
    out.println("</head>");
    out.println("<body bgcolor=\"white\">");
    // all links relative
    // XXX
    // making these absolute till we work out the
    // addition of a PathInfo issue
    out.println("<a href=\"../reqheaders.html\">");
    out.println("<img src=\"../images/code.gif\" height=24 " + "width=24 align=right border=0 alt=\"view code\"></a>");
    out.println("<a href=\"../index.html\">");
    out.println("<img src=\"../images/return.gif\" height=24 " + "width=24 align=right border=0 alt=\"return\"></a>");
    out.println("<h3>" + title + "</h3>");
    out.println("<table border=0>");
    Enumeration<String> e = request.getHeaderNames();
    while (e.hasMoreElements()) {
        String headerName = e.nextElement();
        String headerValue = request.getHeader(headerName);
        out.println("<tr><td bgcolor=\"#CCCCCC\">");
        out.println(HTMLFilter.filter(headerName));
        out.println("</td><td>");
        if (headerName.toLowerCase(Locale.ENGLISH).contains("cookie")) {
            HttpSession session = request.getSession(false);
            String sessionId = null;
            if (session != null) {
                sessionId = session.getId();
            }
            out.println(HTMLFilter.filter(CookieFilter.filter(headerValue, sessionId)));
        } else {
            out.println(HTMLFilter.filter(headerValue));
        }
        out.println("</td></tr>");
    }
    out.println("</table>");
}
Also used : HttpSession(jakarta.servlet.http.HttpSession) ResourceBundle(java.util.ResourceBundle) PrintWriter(java.io.PrintWriter)

Example 82 with HttpSession

use of jakarta.servlet.http.HttpSession in project tomcat by apache.

the class SessionExample method doGet.

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings", request.getLocale());
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE html><html>");
    out.println("<head>");
    out.println("<meta charset=\"UTF-8\" />");
    String title = rb.getString("sessions.title");
    out.println("<title>" + title + "</title>");
    out.println("</head>");
    out.println("<body bgcolor=\"white\">");
    // img stuff not req'd for source code HTML showing
    // relative links everywhere!
    // XXX
    // making these absolute till we work out the
    // addition of a PathInfo issue
    out.println("<a href=\"../sessions.html\">");
    out.println("<img src=\"../images/code.gif\" height=24 " + "width=24 align=right border=0 alt=\"view code\"></a>");
    out.println("<a href=\"../index.html\">");
    out.println("<img src=\"../images/return.gif\" height=24 " + "width=24 align=right border=0 alt=\"return\"></a>");
    out.println("<h3>" + title + "</h3>");
    HttpSession session = request.getSession(true);
    out.println(rb.getString("sessions.id") + " " + session.getId());
    out.println("<br>");
    out.println(rb.getString("sessions.created") + " ");
    out.println(new Date(session.getCreationTime()) + "<br>");
    out.println(rb.getString("sessions.lastaccessed") + " ");
    out.println(new Date(session.getLastAccessedTime()));
    String dataName = request.getParameter("dataname");
    String dataValue = request.getParameter("datavalue");
    if (dataName != null && dataValue != null) {
        session.setAttribute(dataName, dataValue);
    }
    out.println("<P>");
    out.println(rb.getString("sessions.data") + "<br>");
    Enumeration<String> names = session.getAttributeNames();
    while (names.hasMoreElements()) {
        String name = names.nextElement();
        String value = session.getAttribute(name).toString();
        out.println(HTMLFilter.filter(name) + " = " + HTMLFilter.filter(value) + "<br>");
    }
    out.println("<P>");
    out.print("<form action=\"");
    out.print(response.encodeURL("SessionExample"));
    out.print("\" ");
    out.println("method=POST>");
    out.println(rb.getString("sessions.dataname"));
    out.println("<input type=text size=20 name=dataname>");
    out.println("<br>");
    out.println(rb.getString("sessions.datavalue"));
    out.println("<input type=text size=20 name=datavalue>");
    out.println("<br>");
    out.println("<input type=submit>");
    out.println("</form>");
    out.println("<P>GET based form:<br>");
    out.print("<form action=\"");
    out.print(response.encodeURL("SessionExample"));
    out.print("\" ");
    out.println("method=GET>");
    out.println(rb.getString("sessions.dataname"));
    out.println("<input type=text size=20 name=dataname>");
    out.println("<br>");
    out.println(rb.getString("sessions.datavalue"));
    out.println("<input type=text size=20 name=datavalue>");
    out.println("<br>");
    out.println("<input type=submit>");
    out.println("</form>");
    out.print("<p><a href=\"");
    out.print(HTMLFilter.filter(response.encodeURL("SessionExample?dataname=foo&datavalue=bar")));
    out.println("\" >URL encoded </a>");
    out.println("</body>");
    out.println("</html>");
}
Also used : HttpSession(jakarta.servlet.http.HttpSession) ResourceBundle(java.util.ResourceBundle) Date(java.util.Date) PrintWriter(java.io.PrintWriter)

Example 83 with HttpSession

use of jakarta.servlet.http.HttpSession in project spring-security by spring-projects.

the class HttpSessionSaml2AuthenticationRequestRepository method removeAuthenticationRequest.

@Override
public AbstractSaml2AuthenticationRequest removeAuthenticationRequest(HttpServletRequest request, HttpServletResponse response) {
    AbstractSaml2AuthenticationRequest authenticationRequest = loadAuthenticationRequest(request);
    if (authenticationRequest == null) {
        return null;
    }
    HttpSession httpSession = request.getSession();
    httpSession.removeAttribute(this.saml2AuthnRequestAttributeName);
    return authenticationRequest;
}
Also used : HttpSession(jakarta.servlet.http.HttpSession) AbstractSaml2AuthenticationRequest(org.springframework.security.saml2.provider.service.authentication.AbstractSaml2AuthenticationRequest)

Example 84 with HttpSession

use of jakarta.servlet.http.HttpSession in project spring-security by spring-projects.

the class OAuth2AuthorizationCodeGrantFilterTests method doFilterWhenAuthorizationSucceedsAndAnonymousAccessThenAuthorizedClientSavedToHttpSession.

@Test
public void doFilterWhenAuthorizationSucceedsAndAnonymousAccessThenAuthorizedClientSavedToHttpSession() throws Exception {
    AnonymousAuthenticationToken anonymousPrincipal = new AnonymousAuthenticationToken("key-1234", "anonymousUser", AuthorityUtils.createAuthorityList("ROLE_ANONYMOUS"));
    SecurityContext securityContext = SecurityContextHolder.createEmptyContext();
    securityContext.setAuthentication(anonymousPrincipal);
    SecurityContextHolder.setContext(securityContext);
    MockHttpServletRequest authorizationRequest = createAuthorizationRequest("/callback/client-1");
    MockHttpServletRequest authorizationResponse = createAuthorizationResponse(authorizationRequest);
    MockHttpServletResponse response = new MockHttpServletResponse();
    FilterChain filterChain = mock(FilterChain.class);
    this.setUpAuthorizationRequest(authorizationRequest, response, this.registration1);
    this.setUpAuthenticationResult(this.registration1);
    this.filter.doFilter(authorizationResponse, response, filterChain);
    OAuth2AuthorizedClient authorizedClient = this.authorizedClientRepository.loadAuthorizedClient(this.registration1.getRegistrationId(), anonymousPrincipal, authorizationResponse);
    assertThat(authorizedClient).isNotNull();
    assertThat(authorizedClient.getClientRegistration()).isEqualTo(this.registration1);
    assertThat(authorizedClient.getPrincipalName()).isEqualTo(anonymousPrincipal.getName());
    assertThat(authorizedClient.getAccessToken()).isNotNull();
    HttpSession session = authorizationResponse.getSession(false);
    assertThat(session).isNotNull();
    @SuppressWarnings("unchecked") Map<String, OAuth2AuthorizedClient> authorizedClients = (Map<String, OAuth2AuthorizedClient>) session.getAttribute(HttpSessionOAuth2AuthorizedClientRepository.class.getName() + ".AUTHORIZED_CLIENTS");
    assertThat(authorizedClients).isNotEmpty();
    assertThat(authorizedClients).hasSize(1);
    assertThat(authorizedClients.values().iterator().next()).isSameAs(authorizedClient);
}
Also used : MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) HttpSession(jakarta.servlet.http.HttpSession) FilterChain(jakarta.servlet.FilterChain) SecurityContext(org.springframework.security.core.context.SecurityContext) OAuth2AuthorizedClient(org.springframework.security.oauth2.client.OAuth2AuthorizedClient) AnonymousAuthenticationToken(org.springframework.security.authentication.AnonymousAuthenticationToken) Map(java.util.Map) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) Test(org.junit.jupiter.api.Test)

Example 85 with HttpSession

use of jakarta.servlet.http.HttpSession in project spring-security by spring-projects.

the class OAuth2AuthorizationCodeGrantFilterTests method doFilterWhenAuthorizationSucceedsAndAnonymousAccessNullAuthenticationThenAuthorizedClientSavedToHttpSession.

@Test
public void doFilterWhenAuthorizationSucceedsAndAnonymousAccessNullAuthenticationThenAuthorizedClientSavedToHttpSession() throws Exception {
    SecurityContext securityContext = SecurityContextHolder.createEmptyContext();
    // null Authentication
    SecurityContextHolder.setContext(securityContext);
    MockHttpServletRequest authorizationRequest = createAuthorizationRequest("/callback/client-1");
    MockHttpServletRequest authorizationResponse = createAuthorizationResponse(authorizationRequest);
    MockHttpServletResponse response = new MockHttpServletResponse();
    FilterChain filterChain = mock(FilterChain.class);
    this.setUpAuthorizationRequest(authorizationRequest, response, this.registration1);
    this.setUpAuthenticationResult(this.registration1);
    this.filter.doFilter(authorizationResponse, response, filterChain);
    OAuth2AuthorizedClient authorizedClient = this.authorizedClientRepository.loadAuthorizedClient(this.registration1.getRegistrationId(), null, authorizationResponse);
    assertThat(authorizedClient).isNotNull();
    assertThat(authorizedClient.getClientRegistration()).isEqualTo(this.registration1);
    assertThat(authorizedClient.getPrincipalName()).isEqualTo("anonymousUser");
    assertThat(authorizedClient.getAccessToken()).isNotNull();
    HttpSession session = authorizationResponse.getSession(false);
    assertThat(session).isNotNull();
    @SuppressWarnings("unchecked") Map<String, OAuth2AuthorizedClient> authorizedClients = (Map<String, OAuth2AuthorizedClient>) session.getAttribute(HttpSessionOAuth2AuthorizedClientRepository.class.getName() + ".AUTHORIZED_CLIENTS");
    assertThat(authorizedClients).isNotEmpty();
    assertThat(authorizedClients).hasSize(1);
    assertThat(authorizedClients.values().iterator().next()).isSameAs(authorizedClient);
}
Also used : MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) HttpSession(jakarta.servlet.http.HttpSession) FilterChain(jakarta.servlet.FilterChain) SecurityContext(org.springframework.security.core.context.SecurityContext) OAuth2AuthorizedClient(org.springframework.security.oauth2.client.OAuth2AuthorizedClient) Map(java.util.Map) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) Test(org.junit.jupiter.api.Test)

Aggregations

HttpSession (jakarta.servlet.http.HttpSession)101 Test (org.junit.jupiter.api.Test)39 MockHttpServletRequest (org.springframework.mock.web.MockHttpServletRequest)17 MvcResult (org.springframework.test.web.servlet.MvcResult)16 HttpServletRequest (jakarta.servlet.http.HttpServletRequest)13 MockHttpServletResponse (org.springframework.mock.web.MockHttpServletResponse)12 MockHttpSession (org.springframework.mock.web.MockHttpSession)12 Map (java.util.Map)11 MockHttpServletRequest (org.springframework.web.testfixture.servlet.MockHttpServletRequest)11 MockHttpServletResponse (org.springframework.web.testfixture.servlet.MockHttpServletResponse)9 SecurityContext (org.springframework.security.core.context.SecurityContext)7 PathPatternsParameterizedTest (org.springframework.web.servlet.handler.PathPatternsParameterizedTest)7 Authentication (org.springframework.security.core.Authentication)6 Cookie (jakarta.servlet.http.Cookie)5 Request (org.apache.catalina.connector.Request)5 OAuth2AuthorizedClient (org.springframework.security.oauth2.client.OAuth2AuthorizedClient)5 SessionFixationProtectionStrategy (org.springframework.security.web.authentication.session.SessionFixationProtectionStrategy)5 IOException (java.io.IOException)4 PrintWriter (java.io.PrintWriter)4 Response (org.apache.catalina.connector.Response)4