house0128 commented on issue #891:
URL: https://github.com/apache/shiro/issues/891#issuecomment-1582301973

   @lprimak  Thanks.
   Maybe that's why it failed.
   The screenshot you attached is irrelevant as the jakarta artifacts use the 
shade plugin to rename the javax dependencies to jakarta ones.
   
   
   Here is our pseudocode:
   `
   import jakarta.servlet.Filter;
   
   @Bean(name = "shiroFilter")
       public ShiroFilterFactoryBean shiroFilter(@Qualifier("securityManager") 
SecurityManager manager) {
           ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
           bean.setSecurityManager(manager);
           bean.setLoginUrl("/api/xxxxxx");
   
           Map<String, Filter> filtersMap = bean.getFilters();
           filtersMap.put("authc", new CustomxxxxxFilter());
   
           LinkedHashMap<String, String> filterChainDefinitionMap = new 
LinkedHashMap<>();
           filterChainDefinitionMap.put("/api/xxxxxx", "anon");
           bean.setFilterChainDefinitionMap(filterChainDefinitionMap);
           return bean;
   }
   
   
   
   import jakarta.servlet.ServletRequest;
   import jakarta.servlet.ServletResponse;
   import jakarta.servlet.http.HttpServletRequest;
   import jakarta.servlet.http.HttpServletResponse;
   
   public class CustomxxxxxFilter extends FormAuthenticationFilter {
       @Override
       protected boolean onAccessDenied(ServletRequest request, ServletResponse 
response) throws Exception {
           Subject subject = getSubject(request, response);
           xxxxxxxxx
       }
   
       @Override
       protected boolean isAccessAllowed(ServletRequest request, 
ServletResponse response, Object mappedValue) {
           boolean allowed = super.isAccessAllowed(request, response, 
mappedValue);
           xxxxxxx
       }
   }
   `
   I run mvn dependency:tree, there is indeed no reference to javax.server-api 
jar
   
   
   We encountered compilation errors
   
   Map<String, Filter> filtersMap = bean.getFilters();------------》Filter is  
jakarta.servlet.Filter
   filtersMap.put("authc", new CustomxxxxxFilter());-------》CustomxxxxxFilter 
is  javax.servlet.Filter
   
   protected boolean onAccessDenied(ServletRequest request, ServletResponse 
response) throws Exception {----》request is  jakarta.servlet.ServletRequest
       Subject subject = getSubject(request, response);--------》request is  
javax.servlet.ServletRequest
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to