Internal server error when setting unknown groups / roles at authentication plugin
- Dominant language
- Java
- Stars
- 593
- Forks
- 123
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 4
Description
## Gentics Mesh Version, operating system, or hardware.
```
{
"meshVersion": "1.0.2",
"meshNodeName": "Audacious Tangela",
"databaseVendor": "orientdb",
"databaseVersion": "3.0.23 - Veloce (build 6f15b98a4317a01a907edc0df1f165f48742c996, branch 3.0.x)",
"searchVendor": "elasticsearch",
"searchVersion": "6.8.3",
"vertxVersion": "3.8.0",
"databaseRevision": "2def7ead"
}
```
## Operating System
dockered environment: `gentics/mesh:1.0.2`
## JVM
```
~ $ java --version
Picked up JAVA_TOOL_OPTIONS: -Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m -Dstorage.diskCache.bufferSize=256
openjdk 11.0.3 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)
```
## Problem
Sending an HTTP request, including an authorization header as Bearer token... Implemented an plugin `public class AuthPlugin extends AbstractPlugin implements AuthServicePlugin`.
When I set groups or roles in the MappingResult by name, which are not already present in GenticMesh, I do get an Internal Server Error.
## Reproducer
Code (simplyfied):
```
@Override
public MappingResult mapToken(HttpServerRequest req, String uuid, JsonObject token) {
...
MappingResult result = new MappingResult();
List groupList = new ArrayList<>();
groupList.add(new GroupResponse()
.setName("not-existing")
.setRoles(new RoleReference()
.setName("not-existing")
)
);
result.setGroups(groupList);
...
}
```
Stacktrace:
```
Oct 28, 2019 11:02:55 AM com.orientechnologies.common.log.OLogManager log
SEVERE: Exception `0A69E5B0` in storage `plocal:/graphdb/storage`: 3.0.23 - Veloce (build edc0df1f165f48742c996, branch 3.0.x)
com.orientechnologies.orient.core.exception.OLocalHashTableException: Null keys are not supported.
DB name="storage"
Component Name="MeshVertexImpl"
at com.orientechnologies.orient.core.storage.index.hashindex.local.OLocalHashTable.checkNullSupport(OLocalHashTable.java:1370)
at com.orientechnologies.orient.core.storage.index.hashindex.local.OLocalHashTable.get(OLocalHashTable.java:190)
at com.orientechnologies.orient.core.storage.index.engine.OHashTableIndexEngine.get(OHashTableIndexEngine.java:168)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doGetIndexValue(OAbstractPaginatedStorage.java:2701)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.getIndexValue(OAbstractPaginatedStorage.java:2682)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:58)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:45)
at com.orientechnologies.orient.core.index.OIndexAbstractDelegate.get(OIndexAbstractDelegate.java:59)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:238)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:38)
at com.gentics.mesh.graphdb.index.OrientDBIndexHandler.findByUuid(OrientDBIndexHandler.java:389)
at com.gentics.mesh.core.data.root.RootVertex.findByUuid(RootVertex.java:169)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.runPlugins(MeshOAuth2ServiceImpl.java:360)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$syncUser$2(MeshOAuth2ServiceImpl.java:216)
at com.gentics.madl.tx.TxFactory.lambda$tx$1(TxFactory.java:71)
at com.gentics.mesh.graphdb.OrientDBDatabase.tx(OrientDBDatabase.java:329)
at com.gentics.madl.tx.TxFactory.tx(TxFactory.java:70)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.syncUser(MeshOAuth2ServiceImpl.java:195)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$secure$1(MeshOAuth2ServiceImpl.java:158)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:92)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$authorizeUser$3(AuthHandlerImpl.java:219)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorize(AuthHandlerImpl.java:107)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorizeUser(AuthHandlerImpl.java:213)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$null$1(AuthHandlerImpl.java:161)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:150)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$handle$2(AuthHandlerImpl.java:150)
at io.vertx.ext.web.handler.impl.JWTAuthHandlerImpl.lambda$parseCredentials$0(JWTAuthHandlerImpl.java:76)
at io.vertx.ext.web.handler.impl.AuthorizationAuthHandler.parseAuthorization(AuthorizationAuthHandler.java:97)
at io.vertx.ext.web.handler.impl.JWTAuthHandlerImpl.parseCredentials(JWTAuthHandlerImpl.java:70)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle(AuthHandlerImpl.java:129)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle(AuthHandlerImpl.java:39)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$secure$0(MeshOAuth2ServiceImpl.java:130)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:92)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.lambda$handleJWTAuth$0(MeshJWTAuthHandler.java:172)
at com.gentics.mesh.auth.provider.MeshJWTAuthProvider.lambda$authenticateJWT$0(MeshJWTAuthProvider.java:97)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:153)
at com.gentics.mesh.auth.provider.MeshJWTAuthProvider.authenticateJWT(MeshJWTAuthProvider.java:90)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.handleJWTAuth(MeshJWTAuthHandler.java:152)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.handle(MeshJWTAuthHandler.java:89)
at com.gentics.mesh.auth.MeshAuthChain.lambda$secure$0(MeshAuthChain.java:40)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:256)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:156)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:256)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.CookieHandlerImpl.handle(CookieHandlerImpl.java:66)
at io.vertx.ext.web.handler.impl.CookieHandlerImpl.handle(CookieHandlerImpl.java:42)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.doEnd(BodyHandlerImpl.java:296)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.end(BodyHandlerImpl.java:276)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl.lambda$handle$0(BodyHandlerImpl.java:87)
at io.vertx.core.http.impl.HttpServerRequestImpl.onEnd(HttpServerRequestImpl.java:529)
at io.vertx.core.http.impl.HttpServerRequestImpl.handleEnd(HttpServerRequestImpl.java:515)
at io.vertx.core.http.impl.Http1xServerConnection.handleEnd(Http1xServerConnection.java:175)
at io.vertx.core.http.impl.Http1xServerConnection.handleContent(Http1xServerConnection.java:162)
at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:139)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:232)
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:173)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:796)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:427)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:328)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Unknown Source)
``
11:02:55.975 [] ERROR [vert.x-eventloop-thread-0] [c.g.m.a.MeshOAuth2ServiceImpl] - Error while executing mapping plugin {auth-plugin}. Ignoring result.
com.orientechnologies.orient.core.exception.OLocalHashTableException: Null keys are not supported.
DB name="storage"
Component Name="MeshVertexImpl"
at com.orientechnologies.orient.core.storage.index.hashindex.local.OLocalHashTable.checkNullSupport(OLocalHashTable.java:1370)
at com.orientechnologies.orient.core.storage.index.hashindex.local.OLocalHashTable.get(OLocalHashTable.java:190)
at com.orientechnologies.orient.core.storage.index.engine.OHashTableIndexEngine.get(OHashTableIndexEngine.java:168)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doGetIndexValue(OAbstractPaginatedStorage.java:2701)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.getIndexValue(OAbstractPaginatedStorage.java:2682)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:58)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:45)
at com.orientechnologies.orient.core.index.OIndexAbstractDelegate.get(OIndexAbstractDelegate.java:59)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:238)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:38)
at com.gentics.mesh.graphdb.index.OrientDBIndexHandler.findByUuid(OrientDBIndexHandler.java:389)
at com.gentics.mesh.core.data.root.RootVertex.findByUuid(RootVertex.java:169)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.runPlugins(MeshOAuth2ServiceImpl.java:360)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$syncUser$2(MeshOAuth2ServiceImpl.java:216)
at com.gentics.madl.tx.TxFactory.lambda$tx$1(TxFactory.java:71)
at com.gentics.mesh.graphdb.OrientDBDatabase.tx(OrientDBDatabase.java:329)
at com.gentics.madl.tx.TxFactory.tx(TxFactory.java:70)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.syncUser(MeshOAuth2ServiceImpl.java:195)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$secure$1(MeshOAuth2ServiceImpl.java:158)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:92)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$authorizeUser$3(AuthHandlerImpl.java:219)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorize(AuthHandlerImpl.java:107)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorizeUser(AuthHandlerImpl.java:213)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$null$1(AuthHandlerImpl.java:161)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:150)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$handle$2(AuthHandlerImpl.java:150)
at io.vertx.ext.web.handler.impl.JWTAuthHandlerImpl.lambda$parseCredentials$0(JWTAuthHandlerImpl.java:76)
at io.vertx.ext.web.handler.impl.AuthorizationAuthHandler.parseAuthorization(AuthorizationAuthHandler.java:97)
at io.vertx.ext.web.handler.impl.JWTAuthHandlerImpl.parseCredentials(JWTAuthHandlerImpl.java:70)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle(AuthHandlerImpl.java:129)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle(AuthHandlerImpl.java:39)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$secure$0(MeshOAuth2ServiceImpl.java:130)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:92)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.lambda$handleJWTAuth$0(MeshJWTAuthHandler.java:172)
at com.gentics.mesh.auth.provider.MeshJWTAuthProvider.lambda$authenticateJWT$0(MeshJWTAuthProvider.java:97)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:153)
at com.gentics.mesh.auth.provider.MeshJWTAuthProvider.authenticateJWT(MeshJWTAuthProvider.java:90)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.handleJWTAuth(MeshJWTAuthHandler.java:152)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.handle(MeshJWTAuthHandler.java:89)
at com.gentics.mesh.auth.MeshAuthChain.lambda$secure$0(MeshAuthChain.java:40)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:256)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:156)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:256)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.CookieHandlerImpl.handle(CookieHandlerImpl.java:66)
at io.vertx.ext.web.handler.impl.CookieHandlerImpl.handle(CookieHandlerImpl.java:42)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.doEnd(BodyHandlerImpl.java:296)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.end(BodyHandlerImpl.java:276)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl.lambda$handle$0(BodyHandlerImpl.java:87)
at io.vertx.core.http.impl.HttpServerRequestImpl.onEnd(HttpServerRequestImpl.java:529)
at io.vertx.core.http.impl.HttpServerRequestImpl.handleEnd(HttpServerRequestImpl.java:515)
at io.vertx.core.http.impl.Http1xServerConnection.handleEnd(Http1xServerConnection.java:175)
at io.vertx.core.http.impl.Http1xServerConnection.handleContent(Http1xServerConnection.java:162)
at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:139)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:232)
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:173)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:796)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:427)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:328)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Unknown Source)
11:02:55.976 [] DEBUG [vert.x-eventloop-thread-0] [c.g.m.g.OrientDBDatabase] - Error handling transaction
com.orientechnologies.orient.core.exception.OLocalHashTableException: Null keys are not supported.
DB name="storage"
Component Name="MeshVertexImpl"
at com.orientechnologies.orient.core.storage.index.hashindex.local.OLocalHashTable.checkNullSupport(OLocalHashTable.java:1370)
at com.orientechnologies.orient.core.storage.index.hashindex.local.OLocalHashTable.get(OLocalHashTable.java:190)
at com.orientechnologies.orient.core.storage.index.engine.OHashTableIndexEngine.get(OHashTableIndexEngine.java:168)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doGetIndexValue(OAbstractPaginatedStorage.java:2701)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.getIndexValue(OAbstractPaginatedStorage.java:2682)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:58)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:45)
at com.orientechnologies.orient.core.index.OIndexAbstractDelegate.get(OIndexAbstractDelegate.java:59)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:238)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:38)
at com.gentics.mesh.graphdb.index.OrientDBIndexHandler.findByUuid(OrientDBIndexHandler.java:389)
at com.gentics.mesh.core.data.root.RootVertex.findByUuid(RootVertex.java:169)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.runPlugins(MeshOAuth2ServiceImpl.java:360)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$syncUser$2(MeshOAuth2ServiceImpl.java:216)
at com.gentics.madl.tx.TxFactory.lambda$tx$1(TxFactory.java:71)
at com.gentics.mesh.graphdb.OrientDBDatabase.tx(OrientDBDatabase.java:329)
at com.gentics.madl.tx.TxFactory.tx(TxFactory.java:70)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.syncUser(MeshOAuth2ServiceImpl.java:195)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$secure$1(MeshOAuth2ServiceImpl.java:158)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:92)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$authorizeUser$3(AuthHandlerImpl.java:219)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorize(AuthHandlerImpl.java:107)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorizeUser(AuthHandlerImpl.java:213)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$null$1(AuthHandlerImpl.java:161)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:150)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$handle$2(AuthHandlerImpl.java:150)
at io.vertx.ext.web.handler.impl.JWTAuthHandlerImpl.lambda$parseCredentials$0(JWTAuthHandlerImpl.java:76)
at io.vertx.ext.web.handler.impl.AuthorizationAuthHandler.parseAuthorization(AuthorizationAuthHandler.java:97)
at io.vertx.ext.web.handler.impl.JWTAuthHandlerImpl.parseCredentials(JWTAuthHandlerImpl.java:70)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle(AuthHandlerImpl.java:129)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle(AuthHandlerImpl.java:39)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$secure$0(MeshOAuth2ServiceImpl.java:130)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:92)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.lambda$handleJWTAuth$0(MeshJWTAuthHandler.java:172)
at com.gentics.mesh.auth.provider.MeshJWTAuthProvider.lambda$authenticateJWT$0(MeshJWTAuthProvider.java:97)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:153)
at com.gentics.mesh.auth.provider.MeshJWTAuthProvider.authenticateJWT(MeshJWTAuthProvider.java:90)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.handleJWTAuth(MeshJWTAuthHandler.java:152)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.handle(MeshJWTAuthHandler.java:89)
at com.gentics.mesh.auth.MeshAuthChain.lambda$secure$0(MeshAuthChain.java:40)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:256)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:156)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:256)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.CookieHandlerImpl.handle(CookieHandlerImpl.java:66)
at io.vertx.ext.web.handler.impl.CookieHandlerImpl.handle(CookieHandlerImpl.java:42)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.doEnd(BodyHandlerImpl.java:296)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.end(BodyHandlerImpl.java:276)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl.lambda$handle$0(BodyHandlerImpl.java:87)
at io.vertx.core.http.impl.HttpServerRequestImpl.onEnd(HttpServerRequestImpl.java:529)
at io.vertx.core.http.impl.HttpServerRequestImpl.handleEnd(HttpServerRequestImpl.java:515)
at io.vertx.core.http.impl.Http1xServerConnection.handleEnd(Http1xServerConnection.java:175)
at io.vertx.core.http.impl.Http1xServerConnection.handleContent(Http1xServerConnection.java:162)
at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:139)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:232)
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:173)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:796)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:427)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:328)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Unknown Source)
11:02:55.979 [] ERROR [vert.x-eventloop-thread-0] [c.g.m.r.r.FailureHandler] - Error for request in path: /api/v2/projects/d368a074117044c8a8a074117024c872
11:02:55.979 [] ERROR [vert.x-eventloop-thread-0] [c.g.m.r.r.FailureHandler] - Error:
com.orientechnologies.orient.core.exception.OLocalHashTableException: Null keys are not supported.
DB name="storage"
Component Name="MeshVertexImpl"
at com.orientechnologies.orient.core.storage.index.hashindex.local.OLocalHashTable.checkNullSupport(OLocalHashTable.java:1370)
at com.orientechnologies.orient.core.storage.index.hashindex.local.OLocalHashTable.get(OLocalHashTable.java:190)
at com.orientechnologies.orient.core.storage.index.engine.OHashTableIndexEngine.get(OHashTableIndexEngine.java:168)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doGetIndexValue(OAbstractPaginatedStorage.java:2701)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.getIndexValue(OAbstractPaginatedStorage.java:2682)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:58)
at com.orientechnologies.orient.core.index.OIndexOneValue.get(OIndexOneValue.java:45)
at com.orientechnologies.orient.core.index.OIndexAbstractDelegate.get(OIndexAbstractDelegate.java:59)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:238)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:38)
at com.gentics.mesh.graphdb.index.OrientDBIndexHandler.findByUuid(OrientDBIndexHandler.java:389)
at com.gentics.mesh.core.data.root.RootVertex.findByUuid(RootVertex.java:169)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.runPlugins(MeshOAuth2ServiceImpl.java:360)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$syncUser$2(MeshOAuth2ServiceImpl.java:216)
at com.gentics.madl.tx.TxFactory.lambda$tx$1(TxFactory.java:71)
at com.gentics.mesh.graphdb.OrientDBDatabase.tx(OrientDBDatabase.java:329)
at com.gentics.madl.tx.TxFactory.tx(TxFactory.java:70)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.syncUser(MeshOAuth2ServiceImpl.java:195)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$secure$1(MeshOAuth2ServiceImpl.java:158)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:92)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$authorizeUser$3(AuthHandlerImpl.java:219)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorize(AuthHandlerImpl.java:107)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorizeUser(AuthHandlerImpl.java:213)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$null$1(AuthHandlerImpl.java:161)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:150)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.lambda$handle$2(AuthHandlerImpl.java:150)
at io.vertx.ext.web.handler.impl.JWTAuthHandlerImpl.lambda$parseCredentials$0(JWTAuthHandlerImpl.java:76)
at io.vertx.ext.web.handler.impl.AuthorizationAuthHandler.parseAuthorization(AuthorizationAuthHandler.java:97)
at io.vertx.ext.web.handler.impl.JWTAuthHandlerImpl.parseCredentials(JWTAuthHandlerImpl.java:70)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle(AuthHandlerImpl.java:129)
at io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle(AuthHandlerImpl.java:39)
at com.gentics.mesh.auth.MeshOAuth2ServiceImpl.lambda$secure$0(MeshOAuth2ServiceImpl.java:130)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:92)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.lambda$handleJWTAuth$0(MeshJWTAuthHandler.java:172)
at com.gentics.mesh.auth.provider.MeshJWTAuthProvider.lambda$authenticateJWT$0(MeshJWTAuthProvider.java:97)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:153)
at com.gentics.mesh.auth.provider.MeshJWTAuthProvider.authenticateJWT(MeshJWTAuthProvider.java:90)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.handleJWTAuth(MeshJWTAuthHandler.java:152)
at com.gentics.mesh.auth.handler.MeshJWTAuthHandler.handle(MeshJWTAuthHandler.java:89)
at com.gentics.mesh.auth.MeshAuthChain.lambda$secure$0(MeshAuthChain.java:40)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:256)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:156)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:256)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.CookieHandlerImpl.handle(CookieHandlerImpl.java:66)
at io.vertx.ext.web.handler.impl.CookieHandlerImpl.handle(CookieHandlerImpl.java:42)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:231)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:121)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:154)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.doEnd(BodyHandlerImpl.java:296)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.end(BodyHandlerImpl.java:276)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl.lambda$handle$0(BodyHandlerImpl.java:87)
at io.vertx.core.http.impl.HttpServerRequestImpl.onEnd(HttpServerRequestImpl.java:529)
at io.vertx.core.http.impl.HttpServerRequestImpl.handleEnd(HttpServerRequestImpl.java:515)
at io.vertx.core.http.impl.Http1xServerConnection.handleEnd(Http1xServerConnection.java:175)
at io.vertx.core.http.impl.Http1xServerConnection.handleContent(Http1xServerConnection.java:162)
at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:139)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:232)
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:173)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:796)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:427)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:328)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Unknown Source)
```
## Expected behaviour and actual behaviour
Depending on the behaviour you want to specifiy for the auth integration via AuthenticationPlugin. Either
- a meaningful error / warning in the logs, saying the this group / role is unknown or
- creating the role / group
But beside that, the HTTP request should resolve based on the grants the user has anyway (or not).
Contributor guide
Research direction
Start at MeshOAuth2ServiceImpl.java around lines 360 and 216, then trace the lookup through RootVertex.java and OrientDBIndexHandler.java around line 389. Reproduce the MappingResult containing unknown group and role names and determine the expected handling; done means the authentication request no longer produces an internal server error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- authentication, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100