From 9813adc927ec8a4b960548aee4f41306758ce31b Mon Sep 17 00:00:00 2001 From: Ihar Hancharenka Date: Tue, 25 Jul 2023 18:15:46 +0300 Subject: [PATCH] m --- pl/java/jvm/internals/instrument.txt | 6 +++ pl/java/libfws/spring/cloud/contract.txt | 3 ++ pl/java/libfws/spring/cvt-fmt-val/convert.txt | 1 + .../spring/data/jpa/features/soft-delete.txt | 2 + pl/java/libfws/spring/rest/rest-client.txt | 2 + pl/java/libfws/spring/rest/test.txt | 1 + .../spring/security/oauth/oauth2/cfg.txt | 43 +++++++++++++++++++ .../security/oauth/oauth2/grant-types.txt | 33 ++++++++++++++ pl/java/libfws/spring/security/security.txt | 31 +++++++++++++ .../tools/quality/testing/mock/wiremock.txt | 7 +++ .../io/fileformats/parsing/regexp/regex.txt | 4 ++ 11 files changed, 133 insertions(+) create mode 100644 pl/java/jvm/internals/instrument.txt create mode 100644 pl/java/libfws/spring/rest/rest-client.txt create mode 100644 pl/java/libfws/spring/rest/test.txt create mode 100644 pl/java/libfws/spring/security/oauth/oauth2/cfg.txt create mode 100644 pl/java/libfws/spring/security/oauth/oauth2/grant-types.txt create mode 100644 pl/java/libfws/spring/security/security.txt create mode 100644 pl/java/tools/quality/testing/mock/wiremock.txt diff --git a/pl/java/jvm/internals/instrument.txt b/pl/java/jvm/internals/instrument.txt new file mode 100644 index 000000000..1d207c421 --- /dev/null +++ b/pl/java/jvm/internals/instrument.txt @@ -0,0 +1,6 @@ +https://docs.oracle.com/en/java/javase/17/docs/api/java.instrument/java/lang/instrument/package-summary.html +https://docs.oracle.com/en/java/javase/17/docs/api/java.instrument/java/lang/instrument/Instrumentation.html +https://docs.oracle.com/en/java/javase/17/docs/api/java.instrument/java/lang/instrument/ClassFileTransformer.html + +2023 +https://habr.com/ru/articles/750028/ diff --git a/pl/java/libfws/spring/cloud/contract.txt b/pl/java/libfws/spring/cloud/contract.txt index 1541e9276..da9517e33 100644 --- a/pl/java/libfws/spring/cloud/contract.txt +++ b/pl/java/libfws/spring/cloud/contract.txt @@ -1,4 +1,7 @@ contract-testing +https://docs.spring.io/spring-cloud-contract/docs/current/reference/html/project-features.html +https://docs.spring.io/spring-cloud-contract/docs/current/reference/html/project-features.html#features-wiremock + https://www.infoq.com/minibooks/emag-testing-distributed-systems https://spring.io/guides/gs/contract-rest/ https://docs.pact.io/readme diff --git a/pl/java/libfws/spring/cvt-fmt-val/convert.txt b/pl/java/libfws/spring/cvt-fmt-val/convert.txt index a0cb032ac..122ef0ea5 100644 --- a/pl/java/libfws/spring/cvt-fmt-val/convert.txt +++ b/pl/java/libfws/spring/cvt-fmt-val/convert.txt @@ -1,4 +1,5 @@ https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#core-convert +https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-config/message-converters.html core.convert.support.* diff --git a/pl/java/libfws/spring/data/jpa/features/soft-delete.txt b/pl/java/libfws/spring/data/jpa/features/soft-delete.txt index eb4e77ebb..3f950e3d5 100644 --- a/pl/java/libfws/spring/data/jpa/features/soft-delete.txt +++ b/pl/java/libfws/spring/data/jpa/features/soft-delete.txt @@ -1,2 +1,4 @@ +2023 +https://vladmihalcea.com/soft-delete-jpa-version/ 2022 https://www.baeldung.com/spring-jpa-soft-delete diff --git a/pl/java/libfws/spring/rest/rest-client.txt b/pl/java/libfws/spring/rest/rest-client.txt new file mode 100644 index 000000000..4fa6e28b3 --- /dev/null +++ b/pl/java/libfws/spring/rest/rest-client.txt @@ -0,0 +1,2 @@ +2023 +https://spring.io/blog/2023/07/13/new-in-spring-6-1-restclient diff --git a/pl/java/libfws/spring/rest/test.txt b/pl/java/libfws/spring/rest/test.txt new file mode 100644 index 000000000..796e73ff6 --- /dev/null +++ b/pl/java/libfws/spring/rest/test.txt @@ -0,0 +1 @@ +https://docs.spring.io/spring-framework/reference/testing/spring-mvc-test-client.html diff --git a/pl/java/libfws/spring/security/oauth/oauth2/cfg.txt b/pl/java/libfws/spring/security/oauth/oauth2/cfg.txt new file mode 100644 index 000000000..82accb5a3 --- /dev/null +++ b/pl/java/libfws/spring/security/oauth/oauth2/cfg.txt @@ -0,0 +1,43 @@ +HttpSecurity http + http.oauth2Login() + adds OAuth2LoginAuthentionFilter + +ClientRegistration (represents the client in OAuth2 arch) is also needed + - client_id + - client_secret + - grant_type + - scopes + + ClientRegistration cr = ClientRegistration.withRegistrationId("github") + .clientId("...") + .clientSecret("...") + .scope(new String [] {"read:user"}) + .authorizationUri("https://github.com/login/auth/authorize") + .tokenUri("https://github.com/login/auth/access_token") + .userInfoUri("https://api.github.com/user") // to get more details about user + .userNameAttributeId("id") + .clientName("GitHub") + .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) + .redirectUriTemplate("{baseUrl}/{action}/oauth2/code/{registrationId}") + .build(); + + https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps + + CommonOAuth2Provider - partially defines ClientRegistration + + ClientRegistration cr = CommonOAuth2Provider.GITHUB + .getBuilder("github") + .clientId("...") + .clientSecret("...") + .build(); + + ClientRegistrationRepository bean (InMemory...) is used by OAuth2LoginAuthentionFilter ... + + http.oauth2Login(c -> { + c.clientRegistrationRepository(...); + }); + + spring boot can fill OAuth2AuthenticationToken object to controller method params + + props: + spring.security.oauth2.client.provider.myprovider.= diff --git a/pl/java/libfws/spring/security/oauth/oauth2/grant-types.txt b/pl/java/libfws/spring/security/oauth/oauth2/grant-types.txt new file mode 100644 index 000000000..45fd56cd1 --- /dev/null +++ b/pl/java/libfws/spring/security/oauth/oauth2/grant-types.txt @@ -0,0 +1,33 @@ +authorization code + client redirects user to login page + ! the user is directly interacts with auth-server + response_type=code + client_id= + redirect_uri=... + scope= + state=CSRF-token + + the client redirects the user to auth-server + after successful auth, auth-server provides a code to client and state value + and the client can use this code later in order to obtain a token (access_token) + +implicit grant type (not recommended) + to obtain a token without using a code +password + grant_type=password + scope + used only when client and auth-server are maintained by the same org +client credentials + grant_type=client_credentials + client_id + client_code + scope + + simplest grant type, + we can use it when no user is involved + no refresh token +refresh token + grant_type=refresh_token +proof key code for code exchange (PKCE) + https://datatracker.ietf.org/doc/html/rfc7636 + diff --git a/pl/java/libfws/spring/security/security.txt b/pl/java/libfws/spring/security/security.txt new file mode 100644 index 000000000..3331ebc73 --- /dev/null +++ b/pl/java/libfws/spring/security/security.txt @@ -0,0 +1,31 @@ +https://github.com/spring-projects/spring-security + +https://github.com/spring-projects/spring-security/tree/main/aspects/src/main/java/org/springframework/security/authorization/method/aspectj + +config +https://github.com/spring-projects/spring-security/tree/main/config/src/main/java/org/springframework/security/config +https://github.com/spring-projects/spring-security/blob/main/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java +https://github.com/spring-projects/spring-security/tree/main/config/src/main/java/org/springframework/security/config/annotation/web/configurers +https://github.com/spring-projects/spring-security/tree/main/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/client +https://github.com/spring-projects/spring-security/blob/main/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/client/OAuth2LoginConfigurer.java +https://github.com/spring-projects/spring-security/blob/main/config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurer.java + +https://github.com/spring-projects/spring-security/blob/main/config/src/main/java/org/springframework/security/config/oauth2/client/CommonOAuth2Provider.java + + +web +https://github.com/spring-projects/spring-security/tree/main/web/src/main/java/org/springframework/security/web + +oaut2 +https://github.com/spring-projects/spring-security/tree/main/oauth2 + +crypto +https://github.com/spring-projects/spring-security/tree/main/crypto/src/main/java/org/springframework/security/crypto + +core +https://github.com/spring-projects/spring-security/tree/main/core/src/main/java/org/springframework/security +https://github.com/spring-projects/spring-security/blob/main/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java + +deprecated +TokenStore +https://github.com/search?q=repo%3Aspring-attic%2Fspring-security-oauth+TokenStore&type=code diff --git a/pl/java/tools/quality/testing/mock/wiremock.txt b/pl/java/tools/quality/testing/mock/wiremock.txt new file mode 100644 index 000000000..843d8b184 --- /dev/null +++ b/pl/java/tools/quality/testing/mock/wiremock.txt @@ -0,0 +1,7 @@ +https://wiremock.org +https://wiremock.org/docs/junit-jupiter/ + +https://docs.spring.io/spring-cloud-contract/docs/current/reference/html/project-features.html#features-wiremock + +2022 +https://vc.ru/u/628653-codeinside/535563-mock-servisy-dlya-testirovaniya-how-to-use-quick-start diff --git a/pl/rs/libfws/io/fileformats/parsing/regexp/regex.txt b/pl/rs/libfws/io/fileformats/parsing/regexp/regex.txt index 2e1119443..38aa5331d 100644 --- a/pl/rs/libfws/io/fileformats/parsing/regexp/regex.txt +++ b/pl/rs/libfws/io/fileformats/parsing/regexp/regex.txt @@ -1,3 +1,7 @@ https://crates.io/crates/regex https://doc.rust-lang.org/regex/regex/index.html https://github.com/rust-lang/regex + +2023 +https://blog.burntsushi.net/regex-internals/ + https://habr.com/ru/articles/749730/