It doesn't look like anything to me, but here's the stacktrace for when logback.xml has all of the user_file stuff in debug mode:
2021-03-31 22:54:13,670 INFO [NiFi Web Server-22] o.a.n.w.a.c.IllegalArgumentExceptionMapper java.lang.IllegalArgumentException: The supplied username and password are not valid.. Returning Bad Request response. 2021-03-31 22:54:13,672 DEBUG [NiFi Web Server-22] o.a.n.w.a.c.IllegalArgumentExceptionMapper java.lang.IllegalArgumentException: The supplied username and password are not valid. at org.apache.nifi.web.api.AccessResource.createAccessToken(AccessResource.java:734) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:200) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104) at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268) at org.glassfish.jersey.internal.Errors.process(Errors.java:316) at org.glassfish.jersey.internal.Errors.process(Errors.java:298) at org.glassfish.jersey.internal.Errors.process(Errors.java:268) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) at org.apache.nifi.web.filter.RequestLogger.doFilter(RequestLogger.java:66) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:208) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.apache.nifi.web.filter.TimerFilter.doFilter(TimerFilter.java:51) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.apache.nifi.web.filter.ExceptionFilter.doFilter(ExceptionFilter.java:46) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) at org.apache.nifi.web.security.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:47) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.apache.nifi.web.server.JettyServer$2.doFilter(JettyServer.java:1048) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:724) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:531) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:291) at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:151) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.nifi.authentication.exception.InvalidLoginCredentialsException: Kerberos authentication failed at org.apache.nifi.kerberos.KerberosProvider.authenticate(KerberosProvider.java:93) at org.apache.nifi.web.security.spring.LoginIdentityProviderFactoryBean$1.authenticate(LoginIdentityProviderFactoryBean.java:314) at org.apache.nifi.web.api.AccessResource.createAccessToken(AccessResource.java:728) ... 78 common frames omitted Caused by: org.springframework.security.authentication.BadCredentialsException: Kerberos authentication failed at org.springframework.security.kerberos.authentication.sun.SunJaasKerberosClient.login(SunJaasKerberosClient.java:66) at org.springframework.security.kerberos.authentication.KerberosAuthenticationProvider.authenticate(KerberosAuthenticationProvider.java:40) at org.apache.nifi.kerberos.KerberosProvider.authenticate(KerberosProvider.java:87) ... 80 common frames omitted Caused by: javax.security.auth.login.LoginException: Message stream modified (41) at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:808) at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:618) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) at javax.security.auth.login.LoginContext.login(LoginContext.java:587) at org.springframework.security.kerberos.authentication.sun.SunJaasKerberosClient.login(SunJaasKerberosClient.java:59) ... 82 common frames omitted Caused by: sun.security.krb5.internal.KrbApErrException: Message stream modified (41) at sun.security.krb5.KrbKdcRep.check(KrbKdcRep.java:101) at sun.security.krb5.KrbAsRep.decrypt(KrbAsRep.java:159) at sun.security.krb5.KrbAsRep.decryptUsingPassword(KrbAsRep.java:139) at sun.security.krb5.KrbAsReqBuilder.resolve(KrbAsReqBuilder.java:310) at sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:447) at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:770) ... 95 common frames omitted On Wed, Mar 31, 2021 at 4:44 PM Derek Richardson <djr...@gmail.com> wrote: > Correct. > > # kinit admin@MY.REALM > Password for admin@MY.REALM: > > # klist > Ticket cache: FILE:/tmp/krb5cc_0 > Default principal: admin@MY.REALM > > Valid starting Expires Service principal > 03/31/2021 22:42:10 04/01/2021 22:42:10 krbtgt/MY.REALM@MY.REALM > > On Wed, Mar 31, 2021, 1:13 PM Bryan Bende <bbe...@gmail.com> wrote: > >> So from a terminal on the nifi server, you can run "kinit >> admin@MY.REALM" and enter the password and it works, and this same >> principal and password entered into NiFi's login screen does not work? >> >> On Wed, Mar 31, 2021 at 2:19 PM Derek Richardson <djr...@gmail.com> >> wrote: >> > >> > I'm working on transitioning a nifi instance we deploy with Kerberos and >> > I'm having some trouble authenticating. Everything looks correct, but >> when >> > I try to log in with any of my created users, I get an error message: >> > >> > The supplied username and password are not valid. >> > >> > Everything on nifi without https was working, and everything I've >> created >> > on the Kerberos side looks and works as expected, I just haven't been >> able >> > to get a user to log in to the Nifi UI. >> > >> > Here are some of my config files, is there anything I'm missing or have >> > incorrect? >> > >> > --------------------------- >> > >> > Authorizers.xml: >> > <?xml version="1.0" encoding="UTF-8" standalone="yes"?> >> > <authorizers> >> > <userGroupProvider> >> > <identifier>file-user-group-provider</identifier> >> > >> <class>org.apache.nifi.authorization.FileUserGroupProvider</class> >> > <property name="Users File">./conf/users.xml</property> >> > <property name="Legacy Authorized Users File"></property> >> > >> > <property name="Initial User Identity 1"></property> >> > </userGroupProvider> >> > >> > <accessPolicyProvider> >> > <identifier>file-access-policy-provider</identifier> >> > >> > <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class> >> > <property name="User Group >> > Provider">file-user-group-provider</property> >> > <property name="Authorizations >> > File">./conf/authorizations.xml</property> >> > <property name="Initial Admin Identity">admin@MY.REALM >> </property> >> > <property name="Legacy Authorized Users File"></property> >> > <property name="Node Identity 1"></property> >> > <property name="Node Group"></property> >> > </accessPolicyProvider> >> > >> > <authorizer> >> > <identifier>managed-authorizer</identifier> >> > >> > <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class> >> > <property name="Access Policy >> > Provider">file-access-policy-provider</property> >> > </authorizer> >> > >> > <authorizer> >> > <identifier>file-provider</identifier> >> > <class>org.apache.nifi.authorization.FileAuthorizer</class> >> > <property name="Authorizations >> > File">./conf/authorizations.xml</property> >> > <property name="Users File">./conf/users.xml</property> >> > <property name="Initial Admin Identity">admin@MY.REALM >> </property> >> > <property name="Legacy Authorized Users File"></property> >> > >> > <property name="Node Identity 1"></property> >> > </authorizer> >> > </authorizers> >> > >> > ------------------------------------- >> > >> > Relevant nifi.properties: >> > nifi.security.user.authorizer=file-provider >> > nifi.security.user.login.identity.provider=kerberos-provider >> > # kerberos # >> > nifi.kerberos.krb5.file= /etc/krb5.conf >> > nifi.kerberos.service.principal=admin@MY.REALM >> > nifi.kerberos.service.keytab.location=/etc/kadm5.keytab >> > >> > ------------------------------------- >> > >> > Login-identity-provider.xml >> > <loginIdentityProviders> >> > <provider> >> > <identifier>kerberos-provider</identifier> >> > <class>org.apache.nifi.kerberos.KerberosProvider</class> >> > <property name="Default Realm">MY.REALM</property> >> > <property name="Authentication Expiration">12 hours</property> >> > </provider> >> > </loginIdentityProviders> >> > >> > --------------------------------------- >> > >> > /etc/krb5.conf: >> > [logging] >> > default = FILE:/var/log/krb5libs.log >> > kdc = FILE:/var/log/krb5kdc.log >> > admin_server = FILE:/var/log/kadmind.log >> > >> > [libdefaults] >> > ticket_lifetime = 24h >> > renew_lifetime = 7d >> > forwardable = true >> > default_realm = MY.REALM >> > >> > [realms] >> > RO.INTERNAL = { >> > kdc = nifi-djr5.ro.internal:88 >> > admin_server = nifi-djr5.my.realm:749 >> > default_domain = my.realm >> > } >> > >> > [domain_realm] >> > .my.realm = MY.REALM >> > my.realm = MY.REALM >> > >> > [kdc] >> > profile = /var/kerberos/krb5kdc/kdc.conf >> > >> > ------------------------------------------- >> > >> > Any help would be greatly appreciated! >> >