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



这个委托类 Apatche Shiro 的登录代码 .它的显示错误

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

错误是主体参数不能为空。

结果 = {AuthenticationException@7922} 抛出的方法 'org.apache.shiro.authc.AuthenticationException' exception。 详细信息消息 ="令牌提交身份验证失败 [org.apache.shiro.authc.UsernamePasswordToken - 9876534357, 记住我=真]。 可能的意外错误?(典型或预期 登录异常应从 AuthenticationException 扩展)。 原因 = {IllegalArgumentException@8066} "java.lang.IllegalArgumentException: principal argument不能为空。 堆栈跟踪 = {StackTraceElement[70]@8067} suppressedExceptions = {集合$UnmodifiableRandomAccessList@7696} 大小 = 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)">

此问题没有提供太多上下文,请参阅: https://stackoverflow.com/help/how-to-ask

我在堆栈跟踪中执行此操作: com.hk.web.resource.UserResource.loginViaOTP(UserResource.java:365)

如果您没有使用 Shiro 的 Web 过滤器,则需要直接管理主题创建和可能的线程关联。

相关内容

  • 没有找到相关文章

最新更新