{"action":"created","issue":{"url":"https://api.github.com/repos/spring-projects/spring-security/issues/7299","repository_url":"https://api.github.com/repos/spring-projects/spring-security","labels_url":"https://api.github.com/repos/spring-projects/spring-security/issues/7299/labels{/name}","comments_url":"https://api.github.com/repos/spring-projects/spring-security/issues/7299/comments","events_url":"https://api.github.com/repos/spring-projects/spring-security/issues/7299/events","html_url":"https://github.com/spring-projects/spring-security/issues/7299","id":484182783,"node_id":"MDU6SXNzdWU0ODQxODI3ODM=","number":7299,"title":"InMemoryReactiveClientRegistrationRepository should not use ConcurrentReferenceHashMap","user":{"login":"jzheaux","id":3627351,"node_id":"MDQ6VXNlcjM2MjczNTE=","avatar_url":"https://avatars0.githubusercontent.com/u/3627351?v=4","gravatar_id":"","url":"https://api.github.com/users/jzheaux","html_url":"https://github.com/jzheaux","followers_url":"https://api.github.com/users/jzheaux/followers","following_url":"https://api.github.com/users/jzheaux/following{/other_user}","gists_url":"https://api.github.com/users/jzheaux/gists{/gist_id}","starred_url":"https://api.github.com/users/jzheaux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzheaux/subscriptions","organizations_url":"https://api.github.com/users/jzheaux/orgs","repos_url":"https://api.github.com/users/jzheaux/repos","events_url":"https://api.github.com/users/jzheaux/events{/privacy}","received_events_url":"https://api.github.com/users/jzheaux/received_events","type":"User","site_admin":false},"labels":[{"id":555556091,"node_id":"MDU6TGFiZWw1NTU1NTYwOTE=","url":"https://api.github.com/repos/spring-projects/spring-security/labels/in:%20oauth2","name":"in: oauth2","color":"e8f9de","default":false},{"id":322225079,"node_id":"MDU6TGFiZWwzMjIyMjUwNzk=","url":"https://api.github.com/repos/spring-projects/spring-security/labels/type:%20bug","name":"type: bug","color":"e3d9fc","default":false}],"state":"open","locked":false,"assignee":{"login":"jzheaux","id":3627351,"node_id":"MDQ6VXNlcjM2MjczNTE=","avatar_url":"https://avatars0.githubusercontent.com/u/3627351?v=4","gravatar_id":"","url":"https://api.github.com/users/jzheaux","html_url":"https://github.com/jzheaux","followers_url":"https://api.github.com/users/jzheaux/followers","following_url":"https://api.github.com/users/jzheaux/following{/other_user}","gists_url":"https://api.github.com/users/jzheaux/gists{/gist_id}","starred_url":"https://api.github.com/users/jzheaux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzheaux/subscriptions","organizations_url":"https://api.github.com/users/jzheaux/orgs","repos_url":"https://api.github.com/users/jzheaux/repos","events_url":"https://api.github.com/users/jzheaux/events{/privacy}","received_events_url":"https://api.github.com/users/jzheaux/received_events","type":"User","site_admin":false},"assignees":[{"login":"jzheaux","id":3627351,"node_id":"MDQ6VXNlcjM2MjczNTE=","avatar_url":"https://avatars0.githubusercontent.com/u/3627351?v=4","gravatar_id":"","url":"https://api.github.com/users/jzheaux","html_url":"https://github.com/jzheaux","followers_url":"https://api.github.com/users/jzheaux/followers","following_url":"https://api.github.com/users/jzheaux/following{/other_user}","gists_url":"https://api.github.com/users/jzheaux/gists{/gist_id}","starred_url":"https://api.github.com/users/jzheaux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzheaux/subscriptions","organizations_url":"https://api.github.com/users/jzheaux/orgs","repos_url":"https://api.github.com/users/jzheaux/repos","events_url":"https://api.github.com/users/jzheaux/events{/privacy}","received_events_url":"https://api.github.com/users/jzheaux/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/spring-projects/spring-security/milestones/148","html_url":"https://github.com/spring-projects/spring-security/milestone/148","labels_url":"https://api.github.com/repos/spring-projects/spring-security/milestones/148/labels","id":4401512,"node_id":"MDk6TWlsZXN0b25lNDQwMTUxMg==","number":148,"title":"5.2.0.RC1","description":"","creator":{"login":"rwinch","id":362503,"node_id":"MDQ6VXNlcjM2MjUwMw==","avatar_url":"https://avatars0.githubusercontent.com/u/362503?v=4","gravatar_id":"","url":"https://api.github.com/users/rwinch","html_url":"https://github.com/rwinch","followers_url":"https://api.github.com/users/rwinch/followers","following_url":"https://api.github.com/users/rwinch/following{/other_user}","gists_url":"https://api.github.com/users/rwinch/gists{/gist_id}","starred_url":"https://api.github.com/users/rwinch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwinch/subscriptions","organizations_url":"https://api.github.com/users/rwinch/orgs","repos_url":"https://api.github.com/users/rwinch/repos","events_url":"https://api.github.com/users/rwinch/events{/privacy}","received_events_url":"https://api.github.com/users/rwinch/received_events","type":"User","site_admin":false},"open_issues":31,"closed_issues":51,"state":"open","created_at":"2019-06-12T14:59:35Z","updated_at":"2019-08-22T23:59:14Z","due_on":"2019-09-05T07:00:00Z","closed_at":null},"comments":2,"created_at":"2019-08-22T19:56:45Z","updated_at":"2019-08-23T19:25:54Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"`ConcurrentReferenceHashMap` is a cache-style map that uses weak references.\r\n\r\nSince `InMemoryReactiveClientRegistrationRepository` is intended to be persistent, it should instead use `ConcurrentHashMap`.\r\n\r\nThe change to be made is in the `InMemoryReactiveClientRegistrationRepository` constructor that instantiates a `ConcurrentReferenceHashMap`:\r\n\r\n```java\r\nAssert.notEmpty(registrations, \"registrations cannot be empty\");\r\nthis.clientIdToClientRegistration = new ConcurrentReferenceHashMap<>(); // <-- this line\r\nfor (ClientRegistration registration : registrations) {\r\n\tAssert.notNull(registration, \"registrations cannot contain null values\");\r\n\tthis.clientIdToClientRegistration.put(registration.getRegistrationId(), registration);\r\n}\r\n```\r\n\r\nshould instead be\r\n\r\n```java\r\nAssert.notEmpty(registrations, \"registrations cannot be empty\");\r\nthis.clientIdToClientRegistration = new ConcurrentHashMap<>();  // <-- this line\r\nfor (ClientRegistration registration : registrations) {\r\n\tAssert.notNull(registration, \"registrations cannot contain null values\");\r\n\tthis.clientIdToClientRegistration.put(registration.getRegistrationId(), registration);\r\n}\r\n```\r\n\r\nThis ticket should also be backported to 5.1.x."},"comment":{"url":"https://api.github.com/repos/spring-projects/spring-security/issues/comments/524434181","html_url":"https://github.com/spring-projects/spring-security/issues/7299#issuecomment-524434181","issue_url":"https://api.github.com/repos/spring-projects/spring-security/issues/7299","id":524434181,"node_id":"MDEyOklzc3VlQ29tbWVudDUyNDQzNDE4MQ==","user":{"login":"eberttc","id":5652850,"node_id":"MDQ6VXNlcjU2NTI4NTA=","avatar_url":"https://avatars0.githubusercontent.com/u/5652850?v=4","gravatar_id":"","url":"https://api.github.com/users/eberttc","html_url":"https://github.com/eberttc","followers_url":"https://api.github.com/users/eberttc/followers","following_url":"https://api.github.com/users/eberttc/following{/other_user}","gists_url":"https://api.github.com/users/eberttc/gists{/gist_id}","starred_url":"https://api.github.com/users/eberttc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eberttc/subscriptions","organizations_url":"https://api.github.com/users/eberttc/orgs","repos_url":"https://api.github.com/users/eberttc/repos","events_url":"https://api.github.com/users/eberttc/events{/privacy}","received_events_url":"https://api.github.com/users/eberttc/received_events","type":"User","site_admin":false},"created_at":"2019-08-23T19:25:54Z","updated_at":"2019-08-23T19:25:54Z","author_association":"NONE","body":"I'm getting this error at pushing:\r\n\r\nremote: Permission to spring-projects/spring-security.git denied to eberttc.\r\nfatal: unable to access 'https://github.com/spring-projects/spring-security.git/': The requested URL returned error: 403\r\n\r\nDo I need permission in the project?"}}
{"actor":{"display_login":"eberttc"}}