Skip to content

Commit 4460e06

Browse files
authored
Merge pull request #5 from xdev-software/develop
Release
2 parents d3a9cfa + 71d311b commit 4460e06

File tree

4 files changed

+29
-23
lines changed

4 files changed

+29
-23
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# 1.0.1
2+
* Fix NPE when ``additionalStylingData`` is not set
3+
14
# 1.0.0
25
<i>Initial release</i>
36
* All methods and functionality are designed to be overwritable (at least protected)

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# spring-security-advanced-authentication-ui
66

7-
Modernizes the default Spring Web Authentication UI and makes it easier customizable.
7+
Modernizes the default Spring Web Authentication/Login UI and makes it easier customizable.
88

99
<details><summary>Show demo</summary>
1010

@@ -35,6 +35,8 @@ A more detailed scenario is available in the [demo](./spring-security-advanced-a
3535
## Installation
3636
[Installation guide for the latest release](https://github.com/xdev-software/spring-security-advanced-authentication-ui/releases/latest#Installation)
3737

38+
> [!NOTE]
39+
> To minimize the risk of dependency conflicts all Spring (Boot) dependencies are declared as provided and are not shipped by default.
3840
3941
## Support
4042
If you need support as soon as possible and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services/support).

spring-security-advanced-authentication-ui-demo/src/main/resources/META-INF/resources/lib/theme.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
document.addEventListener("DOMContentLoaded", function(event) {
2-
// document.documentElement.setAttribute('data-bs-theme', (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'))
3-
42
let div = document.createElement('div');
53
div.className = "dropdown position-fixed bottom-0 end-0 mb-3 me-3 bd-mode-toggle";
64
div.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" class="d-none">

spring-security-advanced-authentication-ui/src/main/java/software/xdev/spring/security/web/authentication/ui/advanced/filters/AdvancedLoginPageGeneratingFilter.java

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.util.Objects;
2323
import java.util.Optional;
2424
import java.util.function.Consumer;
25-
import java.util.function.Function;
2625
import java.util.stream.Collectors;
2726

2827
import jakarta.servlet.http.HttpServletRequest;
@@ -233,29 +232,45 @@ protected String generateBody(
233232
protected String createBodyElement()
234233
{
235234
return "<body class='h-100"
236-
+ this.additionalStylingData.classNames(AdditionalStylingData::body).orElse("")
235+
+ Optional.ofNullable(this.additionalStylingData)
236+
.map(AdditionalStylingData::body)
237+
.map(StylingDefinition::classNameString)
238+
.orElse("")
237239
+ "'"
238-
+ this.additionalStylingData.style(AdditionalStylingData::body).map(s -> " style='" + s + "'").orElse("")
240+
+ Optional.ofNullable(this.additionalStylingData)
241+
.map(AdditionalStylingData::body)
242+
.map(sd -> " style='" + sd.styleString() + "'")
243+
.orElse("")
239244
+ ">";
240245
}
241246

242247
protected String createContainerElement()
243248
{
244249
return "<div class='container"
245-
+ this.additionalStylingData.classNames(AdditionalStylingData::container).orElse("")
250+
+ Optional.ofNullable(this.additionalStylingData)
251+
.map(AdditionalStylingData::container)
252+
.map(StylingDefinition::classNameString)
253+
.orElse("")
246254
+ "'"
247-
+ this.additionalStylingData.style(AdditionalStylingData::container)
248-
.map(s -> " style='" + s + "'")
255+
+ Optional.ofNullable(this.additionalStylingData)
256+
.map(AdditionalStylingData::container)
257+
.map(sd -> " style='" + sd.styleString() + "'")
249258
.orElse("")
250259
+ ">";
251260
}
252261

253262
protected String createMainElement()
254263
{
255264
return "<main class='w-100 m-auto"
256-
+ this.additionalStylingData.classNames(AdditionalStylingData::main).orElse("")
265+
+ Optional.ofNullable(this.additionalStylingData)
266+
.map(AdditionalStylingData::main)
267+
.map(StylingDefinition::classNameString)
268+
.orElse("")
257269
+ "' style='max-width: 21em; padding: 1rem;"
258-
+ this.additionalStylingData.style(AdditionalStylingData::main).orElse("")
270+
+ Optional.ofNullable(this.additionalStylingData)
271+
.map(AdditionalStylingData::container)
272+
.map(StylingDefinition::styleString)
273+
.orElse("")
259274
+ "'>";
260275
}
261276

@@ -438,17 +453,5 @@ public AdditionalStylingData build()
438453
return new AdditionalStylingData(this.body, this.container, this.main);
439454
}
440455
}
441-
442-
public Optional<String> classNames(final Function<AdditionalStylingData, StylingDefinition> accessor)
443-
{
444-
return Optional.ofNullable(accessor.apply(this))
445-
.map(StylingDefinition::classNameString);
446-
}
447-
448-
public Optional<String> style(final Function<AdditionalStylingData, StylingDefinition> accessor)
449-
{
450-
return Optional.ofNullable(accessor.apply(this))
451-
.map(StylingDefinition::styleString);
452-
}
453456
}
454457
}

0 commit comments

Comments
 (0)