Skip to content
This repository has been archived by the owner on Jul 17, 2023. It is now read-only.

[#171053583] Bump UAA to v74.13.0 #15

Merged
merged 120 commits into from
Feb 12, 2020
Merged

[#171053583] Bump UAA to v74.13.0 #15

merged 120 commits into from
Feb 12, 2020

Conversation

mogds
Copy link

@mogds mogds commented Feb 10, 2020

What

Upgrade our fork to v74.13.0

Who can review

Not me

joshuatcasey and others added 30 commits November 19, 2019 16:05
- Because they conflict with org.json.JSONObject from SCIM libraries

[#169854769]

Signed-off-by: Andrew Wittrock <awittrock@pivotal.io>
[#169854769]

Signed-off-by: Andrew Wittrock <awittrock@pivotal.io>
- Use @DefaultTestContext instead of @WithSpring

[#169854769]

Signed-off-by: Andrew Wittrock <awittrock@pivotal.io>
[#169854769]

Signed-off-by: Andrew Wittrock <awittrock@pivotal.io>
- Apply IntelliJ sanitizations

[#169854769]
[finishes #169854769]

Signed-off-by: Andrew Edstrom <aedstrom@pivotal.io>
- Apply IntelliJ suggestions and refactor

[nostory]
- Apply IntelliJ sanitizations

[nostory]
- Use Extensions for cleanup

[#169991138]
- Inline params with only one value

[#169991138]
- Use callbacks to reset system properties

[#169991138]
- Inline hardcoded parameters

[#169991138]
- Simplify how the context is built

[#169991138]
- Remove reference to non-existent file login.yml

[#169991138]
Prior to this commit, configuring the UAA to manage sessions in memory
resulted in the use of `MapSessionRepository` to manage sessions.
`MapSessionRepository` does not automatically remove expired sessions
from it's backing map.

And neither did the UAA, resulting in a memory leak.

Now, register a scheduled task to remove expired sessions. The tasks
frequency can be configured via the `servlet.session-purge-delay`
property.

[#170035178]
…ired-sessions-170035178

Purge expired session from in memory map
Signed-off-by: Florian Tack <florian.tack@sap.com>
Bumps [spring-framework-bom](https://github.com/spring-projects/spring-framework) from 5.2.1.RELEASE to 5.2.2.RELEASE.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v5.2.1.RELEASE...v5.2.2.RELEASE)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
…dle/org.springframework-spring-framework-bom-5.2.2.RELEASE
- Apply IntelliJ sanitizations

[#170083097]
- Use WithDatabaseContext
- Use JUnit5

[#170083097]
- Apply IntelliJ sanitizations

[#170083097]
joshuatcasey and others added 25 commits December 16, 2019 13:37
- https://hush-house.pivotal.io/teams/cf-uaa/pipelines/uaa-acceptance-gcp/jobs/integration-tests-mysql/builds/36
- One test creates a group that's deleted in the @after, meaning that the group is deleted three times
- Something related to b51b55a means that no longer works, but it shouldn't have worked anyways

[nostory]
- Required properties should be put in the constructor

[nostory]
- Use TimeServiceBean
- Mark internals as final and init them in c'tor

[nostory]
- Use @DefaultTestContext

[nostory]
- Use @DefaultTestContext

[nostory][
- Bring helper classes into same file
- Reinforces that @DefaultTestContext is what to use

[nostory]
Bumps [rack](https://github.com/rack/rack) from 2.0.1 to 2.0.8.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md)
- [Commits](rack/rack@2.0.1...2.0.8)

Signed-off-by: dependabot[bot] <support@github.com>
* allow wildcard in port

- during URI normalize the port wildcard info is lost and then laster in match it fails
- check therefore only for clientRedirect if port is wildcard and store the info
- in match adjust URis with port wildcard

* test for default port

* do not match if default port

* remove space
Bumps [guava](https://github.com/google/guava) from 28.1-jre to 28.2-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
We put the Valve in the wrong spot in our first attempt.

Coincidentally, since then the same change was made in the tomcat-cnb's
server.xml: https://github.com/cloudfoundry/tomcat-cnb/blob/8ef1890ae95ad5a84adb288bd7cb739001bdcb96/server.xml#L31

[#170193262]

Signed-off-by: Andrew Edstrom <aedstrom@pivotal.io>
Co-authored-by: Andrew Edstrom <aedstrom@pivotal.io>
We want to keep these two as in-sync as possible: https://github.com/cloudfoundry/tomcat-cnb/blob/master/server.xml

[#170193262]

Signed-off-by: Andrew Edstrom <aedstrom@pivotal.io>
Co-authored-by: Andrew Edstrom <aedstrom@pivotal.io>
This commit provides a set of matchers to facilitate
- shelling out to YTT to generate k8s templates as
- parsing the resulting yaml into k8s API structs
- matchers for interacting with those structs.

[#169718758]

Signed-off-by: Joshua Casey <jcasey@pivotal.io>
- Includes running the template tests in Go

[#169718758]

Signed-off-by: Joshua Casey <jcasey@pivotal.io>
This file is required for the tests to pass.
Bringing the matchers closer to the underlying structure of the parsed
YAML. This should ease both the extension of the matchers and their
expressiveness.
Some IDPs (e.g. Microsoft) create tokens whose `iss` claim can vary from user
to user. Under the current version, UAA was unable to integrate with these
providers because it requires a single, specific issuer value to be present.

To enable UAA to integrate with providers who do this, we implement different
modes for validating the `iss` claim, under the `issuerValidationMode`
configuration property for OIDC providers

The modes are

STRICT
  The default behaviour. The string in the `iss` claim and the configured
  issuer URL must match exactly.

DOMAIN_ONLY
  The value of the `iss` claim and the configured issuer URL must be URLs. They
  are considered to match if their domains match. Subdomains are not considered
  to match a parent domain.
At the moment, when the user visits:

```
/invitations/accept?code=some-code
```

the invitation code from their email is immediately expired and replaced
with a newly generated code which is put in a hidden input in the HTML
form. Each time the user submits the form, the code is expired and (if
necessary - e.g. if there's a validation issue) replaced with a new one.

This is fine so long as the user fills the form in immediately, but
there are a number of edge cases where this approach causes usability
problems:

1) If the user refreshes the page it will tell them their invitation has
   expired.
2) If the user closes the tab without submitting the form, and then
   follows the invitation link from their email later it will show as
   expired.
3) If the user's email client or web browser pre-fetches the link for
   any reason (e.g. virus scanning / spam detection / performance
   optimisation) then the link will not work when they follow it for
   real.

The third issue is the most serious.

We (GOV.UK PaaS) have had some very users working in places that
pre-fetch links in emails (for some reason or other), and this means
they're completely unable to accept invitations. Judging from the irate
support tickets we've had from these users the experience is pretty
frustrating.

This commit changes the GET request to /invitations/accept so that it
does not expire the token (unless the invitation is being auto-accepted).

The POST handler is unchanged, so if the user actually submits the form
then the token will change (as it did before), even if there's a
validation issue that prevents the invitation being accepted.

This change fixes the usability issues, and makes the behaviour more
consistent with HTTP's semantics (in the sense that GET requests should
be "safe" - should not modify the state of the server).
Copy link
Member

@paroxp paroxp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love the k8s files 🦜

@paroxp paroxp merged commit d58f4f8 into gds_master Feb 12, 2020
@paroxp paroxp deleted the bump-uaa-74.13 branch February 12, 2020 12:00
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.