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]