0 0

struts2 + spring3 + shiro 在was7服务器下部署出错,急......30

最近项目需要集成shiro
我在本地已经开发完成,能够运行。但是我将代码部署在was7服务器下时,可以启动,但是无法登陆。
登陆的时候,运行到Subject user = SecurityUtils.getSubject();这段代码的时候
一直报错:No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton.  This is an invalid application configuration.
项目用的是 struts2 + spring2.5.6 +  shiro1.2.2
本地用的是tomcat,运行完全没问题,目前不知道咋个解决了,请大家帮忙看看,谢谢。非常急
我的XML配置:
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
  <param-value>true</param-value>
  </init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>*.do</url-pattern>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.html</url-pattern>
<url-pattern>/*</url-pattern>
<!--  <dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher> -->
</filter-mapping>
我的SHIRO配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
    http://www.springframework.org/schema/util 
    http://www.springframework.org/schema/util/spring-util-2.5.xsd">
<description>Shiro 配置</description>
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="/index.jsp" />
<property name="successUrl" value="/default.jsp" />
<property name="unauthorizedUrl" value="/frontNoRight.jsp" />
<property name="filterChainDefinitions">
<value>
<!--  未登录可以使用的页面 -->
/=anon
/index.jsp*=anon
/js/**=anon
/css/**=anon
/images/**=anon

<!--  其他需要登录后才能使用的资源 -->
/**=authc
</value>
</property>
</bean>

<!--自定义Realm 继承自AuthorizingRealm -->
<bean id="monitorRealm" class="com.travelsky.cdp.service.service.shiro.MonitorRealm">
<property name="cwipFrontUser"><ref bean="cwipFrontUser"></ref></property>
</bean>

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<!--设置自定义realm -->
<property name="realm" ref="monitorRealm" />
<property name="cacheManager" ref="shiroEhcacheManager" />
</bean>

<!-- 用户授权/认证信息Cache, 采用EhCache  缓存 -->
<bean id="shiroEhcacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
<property name="cacheManagerConfigFile" value="classpath:/shiro/ehcache-shiro.xml"/>
</bean>

<!-- 配置shiro bean processor-->
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />

<!-- 开启Shiro注解的Spring配置方式的beans。在lifecycleBeanPostProcessor之后运行 -->
<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor" >
<!--   <property name="proxyTargetClass" value="true" />  和struts结合使用必须把该属性设置为true,否则使用注解出错 -->
</bean>

<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager" />
</bean>

</beans>


问题补充:谢谢各位,找到原因了,原因是因为WAS7的JDK里面少了一些SUN 标准JDK的jar包导致的,加载到共享库就没问题了.....但是具体哪个包还没有定位到......这个要花太长的时间了来定位了。
2014年2月17日 21:27

1个答案 按时间排序 按投票排序

0 0

能具体说一下吗,我也遇到了相同的问题,谢谢

2014年9月17日 14:50

相关推荐

Global site tag (gtag.js) - Google Analytics