3333import org .springframework .security .web .servlet .util .matcher .PathPatternRequestMatcher ;
3434import org .springframework .security .web .util .matcher .RequestMatcher ;
3535import org .springframework .web .filter .OncePerRequestFilter ;
36- import org .springframework .web .servlet .support .RequestContextUtils ;
3736import org .thymeleaf .ITemplateEngine ;
38- import org .thymeleaf .context .WebContext ;
39- import org .thymeleaf .web .IWebExchange ;
40- import org .thymeleaf .web .servlet .JakartaServletWebApplication ;
4137
4238import java .io .IOException ;
4339import java .nio .charset .StandardCharsets ;
@@ -47,18 +43,15 @@ public final class WebEidLoginPageGeneratingFilter extends OncePerRequestFilter
4743 private final RequestMatcher requestMatcher ;
4844 private final String loginProcessingPath ;
4945 private final ITemplateEngine templateEngine ;
50- private final JakartaServletWebApplication webApp ;
5146
5247 public WebEidLoginPageGeneratingFilter (
5348 String path ,
5449 String loginProcessingPath ,
55- ITemplateEngine templateEngine ,
56- JakartaServletWebApplication webApp
50+ ITemplateEngine templateEngine
5751 ) {
5852 this .requestMatcher = PathPatternRequestMatcher .withDefaults ().matcher (HttpMethod .GET , path );
5953 this .loginProcessingPath = loginProcessingPath ;
6054 this .templateEngine = templateEngine ;
61- this .webApp = webApp ;
6255 }
6356
6457 @ Override
@@ -74,16 +67,14 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
7467 csrf = (CsrfToken ) request .getAttribute ("_csrf" );
7568 }
7669
77- String html = renderTemplate (request , response , csrf );
70+ String html = renderTemplate (csrf );
7871 response .setCharacterEncoding (StandardCharsets .UTF_8 .name ());
7972 response .setContentType (MediaType .TEXT_HTML_VALUE );
8073 response .getWriter ().write (html );
8174 }
8275
83- private String renderTemplate (HttpServletRequest request , HttpServletResponse response , CsrfToken csrf ) {
84- IWebExchange exchange = webApp .buildExchange (request , response );
85- var locale = RequestContextUtils .getLocale (request );
86- var ctx = new WebContext (exchange , locale );
76+ private String renderTemplate (CsrfToken csrf ) {
77+ var ctx = new org .thymeleaf .context .Context ();
8778 ctx .setVariable ("loginProcessingPath" , loginProcessingPath );
8879 ctx .setVariable ("csrfHeaderName" , csrf != null ? csrf .getHeaderName () : "X-CSRF-TOKEN" );
8980 ctx .setVariable ("csrfToken" , csrf != null ? csrf .getToken () : "" );
0 commit comments