apache Shiro登录失败-- Illegael参数异常-主参数不能为空

cig3rfwq  于 11个月前  发布在  Apache
关注(0)|答案(1)|浏览(100)

Apatche Shiro的Delegating类登录代码。在

Subject subject = this.securityManager.login(this, token);

字符串
错误为主要内容不能为空。
结果= {AuthenticationException@7922}方法引发“org.apache.shiro.authc.AuthenticationException”异常。detailMessage =“令牌提交的身份验证失败[org.apache.shiro.authc.UsernamePasswordToken - 9876534357,rememberMe=true]。可能是意外错误?(典型的或预期的登录异常应该从AuthenticationException扩展)。”cause = {IllegalArgumentException@8066}“java.lang.IllegalArgumentException:principal参数不能为null。”stackTrace = {StackTraceElement[70]@8067} suppressedList = {Collections $UnmodifiableRandom List@7696} size = 0

public void login(AuthenticationToken token) throws AuthenticationException {
    this.clearRunAsIdentitiesInternal();
    Subject subject = this.securityManager.login(this, token);
    String host = null;
    PrincipalCollection principals;
    if (subject instanceof DelegatingSubject) {
        DelegatingSubject delegating = (DelegatingSubject)subject;
        principals = delegating.principals;
        host = delegating.host;
    } else {
        principals = subject.getPrincipals();
    }

    if (principals != null && !principals.isEmpty()) {
        this.principals = principals;
        this.authenticated = true;
        if (token instanceof HostAuthenticationToken) {
            host = ((HostAuthenticationToken)token).getHost();
        }

        if (host != null) {
            this.host = host;
        }

        Session session = subject.getSession(false);
        if (session != null) {
            this.session = this.decorate(session);
        } else {
            this.session = null;
        }

    } else {
        String msg = "Principals returned from securityManager.login( token ) returned a null or empty value.  This value must be non null and populated with one or more elements.";
        throw new IllegalStateException(msg);
    }
}




stackTrace = {StackTraceElement[70]@7843}


0 = {StackTraceElement@7701}

"org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:214)" 1 = {StackTraceElement@7702} "org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106)" 2 = {StackTraceElement@7703} "org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:274)" 3 = {StackTraceElement@7704} "org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:260)" 4 = {StackTraceElement@7705} "com.hk.impl.service.auth.LoginServiceImpl.login(LoginServiceImpl.java:262)" 5 = {StackTraceElement@7706} "com.hk.impl.service.auth.LoginServiceImpl.loginAuthenticatedUser(LoginServiceImpl.java:223)" 6 = {StackTraceElement@7707} "com.hk.impl.service.auth.LoginServiceImpl.login(LoginServiceImpl.java:450)" 7 = {StackTraceElement@7708} "com.hk.web.resource.UserResource.loginViaOTP(UserResource.java:365)" 8 = {StackTraceElement@7709} "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)" 9 = {StackTraceElement@7710} "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)" 10 = {StackTraceElement@7711} "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)" 11 = {StackTraceElement@7712} "java.lang.reflect.Method.invoke(Method.java:498)" 12 = {StackTraceElement@7713} "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)" 13 = {StackTraceElement@7714} "org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)" 14 = {StackTraceElement@7715} "org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)" 15 = {StackTraceElement@7716} "org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)" 16 = {StackTraceElement@7717} "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:376)" 17 = {StackTraceElement@7718} "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:199)" 18 = {StackTraceElement@7719} "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)" 19 = {StackTraceElement@7720} "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)" 20 = {StackTraceElement@7721} "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)" 21 = {StackTraceElement@7722} "javax.servlet.http.HttpServlet.service(HttpServlet.java:742)" 22 = {StackTraceElement@7723} "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)" 23 = {StackTraceElement@7724} "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)" 24 = {StackTraceElement@7725} "org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)" 25 = {StackTraceElement@7726} "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)" 26 = {StackTraceElement@7727} "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)" 27 = {StackTraceElement@7728} "com.hk.web.filter.PersonaCookieFilter.doFilter(PersonaCookieFilter.java:60)" 28 = {StackTraceElement@7729} "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)" 29 = {StackTraceElement@7730} "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)" 30 = {StackTraceElement@7731} "com.hk.web.filter.GoogleBotFilter.doFilter(GoogleBotFilter.java:102)" 31 = {StackTraceElement@7732} "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)" 32 = {StackTraceElement@7733} "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)" 33 = {StackTraceElement@7734} "com.hk.web.filter.InAppUrlRedirectFilter.doFilter(InAppUrlRedirectFilter.java:315)" 34 = {StackTraceElement@7735} "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)" 35 = {StackTraceElement@7736} "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)" 36 = {StackTraceElement@7737} "com.hk.web.filter.WebContextFilter.doFilter(WebContextFilter.java:13)" 37 = {StackTraceElement@7738} "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)" 38 = {StackTraceElement@7739} "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)" 39 = {StackTraceElement@7740} "org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)" 40 = {StackTraceElement@7741} "org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)" 41 = {StackTraceElement@7742} "org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)" 42 = {StackTraceElement@7743} "org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)" 43 = {StackTraceElement@7744} "org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)" 44 = {StackTraceElement@7745} "org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)" 45 = {StackTraceElement@7746} "org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)" 46 = {StackTraceElement@7747} "org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)" 47 = {StackTraceElement@7748} "org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)" 48 = {StackTraceElement@7749} "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)" 49 = {StackTraceElement@7750} "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)" 50 = {StackTraceElement@7751} "com.hk.web.filter.EncodingFilter.doFilter(EncodingFilter.java:27)" 51 = {StackTraceElement@7752} "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)" 52 = {StackTraceElement@7753} "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)" 53 = {StackTraceElement@7754} "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)" 54 = {StackTraceElement@7755} "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)" 55 = {StackTraceElement@7756} "org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)" 56 = {StackTraceElement@7757} "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)" 57 = {StackTraceElement@7758} "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)" 58 = {StackTraceElement@7759} "org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)" 59 = {StackTraceElement@7760} "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)" 60 = {StackTraceElement@7761} "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)" 61 = {StackTraceElement@7762} "org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)" 62 = {StackTraceElement@7763} "org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)" 63 = {StackTraceElement@7764} "org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)" 64 = {StackTraceElement@7765} "org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)" 65 = {StackTraceElement@7766} "org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)" 66 = {StackTraceElement@7767} "java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)" 67 = {StackTraceElement@7768} "java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)" 68 = {StackTraceElement@7769} "org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)" 69 = {StackTraceElement@7770} "java.lang.Thread.run(Thread.java:748)"

8dtrkrch

8dtrkrch1#

我在堆栈跟踪中这样做:

com.hk.web.resource.UserResource.loginViaOTP(UserResource.java:365)

字符串
如果你没有使用Shiro的网页过滤器,那么你需要直接管理主题的创建和潜在的线程关联。

相关问题