gentics / gentics/mesh

Internal server error when setting unknown groups / roles at authentication plugin

Open
#914 5 comments 0 reactions 0 assignees View on GitHub
f/plugins
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.