本帖最后由 Jayron 于 2014-02-13 14:55:40 编辑

解决方案 »

  1.   

    SysUserService 贴出来看看吧
      

  2.   

    hibernate配置文件,没有配置绑定当前线程的session
      

  3.   


    第一个是正常的,第二个会报no session
    SysUserService.java
    public SysUser login(String userName, String password) {

    SysUser user = null;
    List<Object[]> list = sessionFactory.getCurrentSession().createSQLQuery("select id_,password_,user_name_ from `user_` where `user_name_`= '"+userName+"' and `password_`='"+password+"'").list();
    for(Object[] o : list)
    {
    user = new SysUser();
    user.setId(((BigInteger)o[0]).longValue());
    user.setPassword((String)o[1]);
    user.setUserName((String)o[2]);
    }
    return user;
    } public List<String> findResourceByUser(SysUser user) {

    return sessionFactory.getCurrentSession().createSQLQuery("select distinct(url_) from resource_").list();
    }
      

  4.   


    如果用isPermitted()主动去触发MyRealmk中的doGetAuthorizationInfo(),会正常返回结果。
    但如果是通过访问去触发MyRealm中的doGetAuthorizationInfo(),会出现no session的错。
    很奇怪
      

  5.   


    如果用isPermitted()主动去触发MyRealmk中的doGetAuthorizationInfo(),会正常返回结果。
    但如果是通过访问去触发MyRealm中的doGetAuthorizationInfo(),会出现no session的错。
    应该都有绑定,会不会是因为session已经关闭?还是?
      

  6.   

    <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>
    这样试试
      

  7.   

    还是不行
    org.hibernate.HibernateException: No Session found for current thread谢谢song_1990 的提醒,应该是session生命周期的问题。只是很奇怪登录的方法doGetAuthorizationInfo是正常,获取权限信息的方法doGetAuthorizationInfo却有这个错
      

  8.   

    用hibernate3下南就改成".hibernate4"<filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>
         org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
    </filter-class>
    </filter>
    <filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>