我想为Struts 2应用程序添加安全性。我选择了Apache Shiro。 你能给我一些有用的提示吗? 我已经开始根据shiro网站上的网络集成进行集成,但目前它不起作用。
我已添加到我的web.xml
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
和
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
我已经创建了shiro拦截器。
public class ShiroInterceptor extends AbstractInterceptor {
public String intercept(ActionInvocation actionInvocation) throws Exception {
Subject shiroUser = SecurityUtils.getSubject();
actionInvocation.getStack().setValue("shiroUser", shiroUser);
return actionInvocation.invoke();
}
}
我添加了shiro.ini
[main]
#authc = org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter
authc.loginUrl = /login.jsp
authc.usernameParam = login
authc.passwordParam = password
authc.successUrl = /some.jsp
roles.unauthorizedUrl = /error.jsp
myRealm = travel_click.logic.manager.security.MyRealm
securityManager.realms = $myRealm
[urls]
/**=authc
我写过MyRealm课程。
我还应该做什么?