Genesys Backend issueshttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues2020-05-18T20:14:28+02:00https://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/494Optimize API call /crops2020-05-18T20:14:28+02:00Matija ObrezaOptimize API call /cropsThis call takes too long to execute but is crucial for UI to function.This call takes too long to execute but is crucial for UI to function.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/493JSP menu bug2020-01-07T07:47:26+01:00Matija ObrezaJSP menu bugSteps:
1. Go to https://www.genesys-pgr.org and logout
1. Go to https://api.genesys-pgr.org and observe an Exception thrown
This is because the Authentication object is the OAuth client (from the website) and it has no `.fullName` prop...Steps:
1. Go to https://www.genesys-pgr.org and logout
1. Go to https://api.genesys-pgr.org and observe an Exception thrown
This is because the Authentication object is the OAuth client (from the website) and it has no `.fullName` property.
Update `menu.jsp` so that if authentication object is not `User` it shows the anonymous menu.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/492Detect accessions in Dataset file2021-02-15T09:59:23+01:00Matija ObrezaDetect accessions in Dataset fileData providers generally upload the Excel file with data in Step 2, and then upload accession references in step 3.
Can we add `detectAccessions` function that will use Amphibian to check for `DOI` and `ACCENUMB` headers and automatical...Data providers generally upload the Excel file with data in Step 2, and then upload accession references in step 3.
Can we add `detectAccessions` function that will use Amphibian to check for `DOI` and `ACCENUMB` headers and automatically register accession references?
The user would trigger this function in step 3. So they either copy-paste the list or autodetect it from the file.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/491ES: Text query issue2019-12-17T11:43:33+01:00Matija ObrezaES: Text query issueIf you look at https://www.genesys-pgr.org/a/overview/v2r8eB7XPQw
![image](/uploads/06c6c889cfb91656235fc3c30702920b/image.png)
and then search only for the listed institute codes at https://www.genesys-pgr.org/a/overview/v29Dz9AM6ax ...If you look at https://www.genesys-pgr.org/a/overview/v2r8eB7XPQw
![image](/uploads/06c6c889cfb91656235fc3c30702920b/image.png)
and then search only for the listed institute codes at https://www.genesys-pgr.org/a/overview/v29Dz9AM6ax
![image](/uploads/5f96a184f360b6b024ac1a9d2fd6918c/image.png)
the only difference is the use of full-text search in ES query.
Please check how the text criteria is added to the query built and submitted to ES. It seems to use an "or" operation.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/489SGSV flag2019-11-29T09:46:03+01:00Matija ObrezaSGSV flagThe `Accession#inSvalbard` flag is currently managed by the link to data found in the SGSV database.
As we are not able to reliably link accession numbers between the systems, we use `inSGSV() { return duplSite.contains('NOR051'); }`, ...The `Accession#inSvalbard` flag is currently managed by the link to data found in the SGSV database.
As we are not able to reliably link accession numbers between the systems, we use `inSGSV() { return duplSite.contains('NOR051'); }`, relying on information submitted by data providers.
This value is transient so we cannot use it in our KPI implementation.2.5Matija ObrezaMatija Obrezahttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/490Full-text filter doesn`t work;2019-12-05T20:32:07+01:00Kiril MorhalenkoFull-text filter doesn`t work;**Steps:**
1. Go to "https://sandbox.genesys-pgr.org/a";
2. Enter to the "Full-text" filter any text;
3. Apply filters;
**Expected result:**
Filter should be applied;
**Actual result:**
Request is failed
![image](/uploads/a0fb04e87898...**Steps:**
1. Go to "https://sandbox.genesys-pgr.org/a";
2. Enter to the "Full-text" filter any text;
3. Apply filters;
**Expected result:**
Filter should be applied;
**Actual result:**
Request is failed
![image](/uploads/a0fb04e878986c79b067a7143d5dc3cc/image.png)Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/488DB query performance2020-04-09T15:14:42+02:00Kiril MorhalenkoDB query performanceHaving the default filter `historic: false` affects database query performance.
**Steps:**
1. Go to "https://sandbox.genesys-pgr.org/a/overview";
2. Apply filter "Excluding Holder: GBR140";
3. Click on the "Accessions" tab;
**Expected ...Having the default filter `historic: false` affects database query performance.
**Steps:**
1. Go to "https://sandbox.genesys-pgr.org/a/overview";
2. Apply filter "Excluding Holder: GBR140";
3. Click on the "Accessions" tab;
**Expected result:**
User is on the `/a` page and filters are applied;
**Actual result:**
Request is failed after 19.99 sec;
![requset_is_canceled](/uploads/e5773f2073b8d22b7a455e3655ff8403/requset_is_canceled.gif)Anastasiia KarasAnastasiia Karashttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/487Error "Request failed with status code 500" happens if user apply filters fro...2019-11-25T10:01:44+01:00Kiril MorhalenkoError "Request failed with status code 500" happens if user apply filters from blocks on the /a/overview page;**Steps:**
1. Go to "https://sandbox.genesys-pgr.org/a/overview";
2. Apply filter "Not specified" from block "Type of Germplasm storage" and wait until filters will be applied;
3. Apply filter "India" from block "Provenance of material" ...**Steps:**
1. Go to "https://sandbox.genesys-pgr.org/a/overview";
2. Apply filter "Not specified" from block "Type of Germplasm storage" and wait until filters will be applied;
3. Apply filter "India" from block "Provenance of material" and wait until filters will be applied;
4. Apply filter "Wild" from block "Biological status of accession" and wait until filters will be applied;
![image](/uploads/3f4c87170d2195acecccfd19c03cb7cc/image.png)
**Expected result:**
All applied filter should be applied;
**Actual result:**
Error "Request failed with status code 500" happens
![image](/uploads/89e334fd17ba8ed8af5462efe76b1c1e/image.png)Viacheslav PavlovViacheslav Pavlovhttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/486Accession: Additional validators2019-12-05T20:54:43+01:00Kiril MorhalenkoAccession: Additional validatorsWe have 23 accessions with incorrect data in Sandbox. You will be able to see this records by link https://sandbox.genesys-pgr.org/a/overview/v2LYdd6b61R:
![image](/uploads/9035f6fb01ddf1b46372d1b720ebeee7/image.png)
## Additional vali...We have 23 accessions with incorrect data in Sandbox. You will be able to see this records by link https://sandbox.genesys-pgr.org/a/overview/v2LYdd6b61R:
![image](/uploads/9035f6fb01ddf1b46372d1b720ebeee7/image.png)
## Additional validation required
Please add data model validation to fields:
- `storage`: https://www.genesys-pgr.org/documentation/basics#mcpd-storage
- `sampStat` https://www.genesys-pgr.org/documentation/basics#mcpd-sampstat
Only the values listed are allowed.
Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/485API v2 for remaining controllers2019-12-18T11:26:31+01:00Matija ObrezaAPI v2 for remaining controllersPlease create API v2 for the remaining v1 controllers.Please create API v2 for the remaining v1 controllers.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/484Database connection pool empty2019-11-11T15:06:43+01:00Matija ObrezaDatabase connection pool emptySomething is using up all available database connections on https://api.sandbox.genesys-pgr.org
```
2019-11-11T09:47:16.229988776Z Caused by: org.apache.tomcat.jdbc.pool.PoolExhaustedException: [qtp1343441044-154] Timeout: Pool empty. U...Something is using up all available database connections on https://api.sandbox.genesys-pgr.org
```
2019-11-11T09:47:16.229988776Z Caused by: org.apache.tomcat.jdbc.pool.PoolExhaustedException: [qtp1343441044-154] Timeout: Pool empty. Unable to fetch a connection in 30 seconds, none available[size:50; busy:50; idle:0; lastwait:30000].
2019-11-11T09:47:16.229993290Z at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:674)
2019-11-11T09:47:16.229997383Z at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
2019-11-11T09:47:16.230001418Z at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:128)
2019-11-11T09:47:16.230005637Z at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139)
2019-11-11T09:47:16.230010020Z at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380)
2019-11-11T09:47:16.230014357Z at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228)
2019-11-11T09:47:16.230018580Z ... 140 more
```https://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/483Accession Filters: historic2019-11-21T09:40:03+01:00Matija ObrezaAccession Filters: historichttps://www.genesys-pgr.org/a/v2yk7BA47YP does not filter the records properly.https://www.genesys-pgr.org/a/v2yk7BA47YP does not filter the records properly.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/482Remove OAuth tokens presistence2019-11-14T14:52:52+01:00Matija ObrezaRemove OAuth tokens presistenceWe're using JWT, can we drop all OAuth token related code?We're using JWT, can we drop all OAuth token related code?2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/481Accession filter: Active records by default2019-11-20T19:46:57+01:00Matija ObrezaAccession filter: Active records by defaultChange behavior of `AccessionFilter` so that only active accessions are included by default.
This requires a new filter field `Set<Boolean> historic` so the user can specify `[true]`, `[false]` or `[true, false]`.
The empty set `[]` sh...Change behavior of `AccessionFilter` so that only active accessions are included by default.
This requires a new filter field `Set<Boolean> historic` so the user can specify `[true]`, `[false]` or `[true, false]`.
The empty set `[]` should convert to `[true]` before any processing takes place. (Maybe this can be done in the constructor?)
`[true, false]` translates to: Don't use filter on `historic`.2.5Matija ObrezaMatija Obrezahttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/480Descriptor image: Folder permissions2019-10-22T10:40:07+02:00Matija ObrezaDescriptor image: Folder permissionsUploading images for descriptors only works for Administrators.
The folder permissions are not set up properly. How it is done for Dataset files is a good example.Uploading images for descriptors only works for Administrators.
The folder permissions are not set up properly. How it is done for Dataset files is a good example.2.5Matija ObrezaMatija Obrezahttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/479API v2: Subsets and Datasets2019-10-27T09:08:51+01:00Matija ObrezaAPI v2: Subsets and DatasetsUpgrade controllers for subsets and datasets to v2 as described in genesys-pgr/genesys-server#473
Copy and update the unit tests.Upgrade controllers for subsets and datasets to v2 as described in genesys-pgr/genesys-server#473
Copy and update the unit tests.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/478API v2 /admin2019-11-15T08:25:38+01:00Matija ObrezaAPI v2 /adminUpgrade v1 /admin controllers to v2 using the approach documented in genesys-pgr/genesys-server#473
Copy and update the unit tests.Upgrade v1 /admin controllers to v2 using the approach documented in genesys-pgr/genesys-server#473
Copy and update the unit tests.2.5Maxym BorodenkoMaxym Borodenkohttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/477Blacklist originalFilenames in Repository2019-10-15T10:18:45+02:00Matija ObrezaBlacklist originalFilenames in RepositoryWe need a mechanism to prevent users from uploading `Thumbs.db` and files starting with `.` or `~`.
The configuration options should be declared in *application.properties*.We need a mechanism to prevent users from uploading `Thumbs.db` and files starting with `.` or `~`.
The configuration options should be declared in *application.properties*.2.5Anastasiia KarasAnastasiia Karashttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/476MCPD download of AccessionRefs2019-10-10T16:06:39+02:00Matija ObrezaMCPD download of AccessionRefsThe button "Download MCPD" is not producing results for https://www.genesys-pgr.org/datasets/c467e584-1f25-445c-99ce-1fb9bf669470
Check `writeXlsxMCPD` in Subset and Dataset service implementations.The button "Download MCPD" is not producing results for https://www.genesys-pgr.org/datasets/c467e584-1f25-445c-99ce-1fb9bf669470
Check `writeXlsxMCPD` in Subset and Dataset service implementations.2.5Matija ObrezaMatija Obrezahttps://gitlab.croptrust.org/genesys-pgr/genesys-server/-/issues/475NPE in OAuth approval2019-10-09T10:34:07+02:00Matija ObrezaNPE in OAuth approvalSince the recent upgrade of libraries, accessing https://api.genesys-pgr.org/oauth/authorize?response_type=code&client_id=fTxcm.TrySiiiOLncyeWfmQKyp%40www.genesys-pgr.org&redirect_uri=oob&scope=write fails with:
```
javax.servlet.Servle...Since the recent upgrade of libraries, accessing https://api.genesys-pgr.org/oauth/authorize?response_type=code&client_id=fTxcm.TrySiiiOLncyeWfmQKyp%40www.genesys-pgr.org&redirect_uri=oob&scope=write fails with:
```
javax.servlet.ServletException: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:168)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:505)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
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:698)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:214)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.sitemesh.webapp.contentfilter.ContentBufferingFilter.bufferAndPostProcess(ContentBufferingFilter.java:169)
at org.sitemesh.webapp.contentfilter.ContentBufferingFilter.doFilter(ContentBufferingFilter.java:126)
at org.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:120)
at org.sitemesh.config.ConfigurableSiteMeshFilter.doFilter(ConfigurableSiteMeshFilter.java:163)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
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:1610)
at org.genesys2.server.servlet.filter.LocaleURLFilter.doFilter(LocaleURLFilter.java:179)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at com.hazelcast.web.WebFilter.doFilter(WebFilter.java:296)
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:1610)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.genesys2.server.servlet.filter.SuppressRequestRejectedExceptionFilter.doFilter(SuppressRequestRejectedExceptionFilter.java:40)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
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:1700)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:152)
... 15 more
Caused by: java.lang.NullPointerException
at org.springframework.security.oauth2.provider.endpoint.DefaultRedirectResolver.hostMatches(DefaultRedirectResolver.java:194)
at org.springframework.security.oauth2.provider.endpoint.DefaultRedirectResolver.redirectMatches(DefaultRedirectResolver.java:126)
at org.springframework.security.oauth2.provider.endpoint.DefaultRedirectResolver.obtainMatchingRedirect(DefaultRedirectResolver.java:213)
at org.springframework.security.oauth2.provider.endpoint.DefaultRedirectResolver.resolveRedirect(DefaultRedirectResolver.java:92)
at org.springframework.security.oauth2.provider.endpoint.AuthorizationEndpoint.authorize(AuthorizationEndpoint.java:152)
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.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:854)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:765)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
... 100 more
```2.5Maxym BorodenkoMaxym Borodenko