Skip to content

Commit a08ede9

Browse files
authored
OmniFaces 5.0 (adds new Security Tags) (#241)
* OmniFaces 5.0 (adds new Security Tags) * OmniFaces 5.0 (adds new Security Tags) * OmniFaces 5.0 (adds new Security Tags) * OmniFaces 5.0 (adds new Security Tags) * OmniFaces 5.0 (adds new Security Tags) * OmniFaces 5.0 (adds new Security Tags)
1 parent 783d642 commit a08ede9

File tree

8 files changed

+116
-109
lines changed

8 files changed

+116
-109
lines changed

deployment/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@
4646
<groupId>io.quarkus</groupId>
4747
<artifactId>quarkus-websockets-client-deployment</artifactId>
4848
</dependency>
49+
<dependency>
50+
<groupId>io.quarkus</groupId>
51+
<artifactId>quarkus-security-deployment</artifactId>
52+
</dependency>
4953
<dependency>
5054
<groupId>io.quarkus</groupId>
5155
<artifactId>quarkus-jsonp-deployment</artifactId>
@@ -56,7 +60,7 @@
5660
</dependency>
5761
<dependency>
5862
<groupId>io.quarkus</groupId>
59-
<artifactId>quarkus-vertx-http-dev-ui-spi</artifactId>
63+
<artifactId>quarkus-devui-deployment-spi</artifactId>
6064
</dependency>
6165
<dependency>
6266
<groupId>io.quarkus</groupId>

deployment/src/main/java/io/quarkiverse/omnifaces/deployment/OmnifacesProcessor.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
import org.omnifaces.config.WebXml;
3737
import org.omnifaces.resourcehandler.CombinedResourceHandler;
3838
import org.omnifaces.resourcehandler.WebAppManifest;
39+
import org.omnifaces.security.AnonymousTagHandler;
40+
import org.omnifaces.security.AuthenticatedTagHandler;
41+
import org.omnifaces.security.AuthorizeTagHandler;
3942

4043
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
4144
import io.quarkus.arc.deployment.AnnotationsTransformerBuildItem;
@@ -185,9 +188,25 @@ void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveCla
185188
ReflectiveClassBuildItem.builder(classNames.toArray(new String[0])).methods(true).serialization(true).build());
186189
}
187190

191+
@BuildStep
192+
void registerSecurityTaglibForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
193+
final List<String> classes = new ArrayList<>();
194+
195+
classes.add(AnonymousTagHandler.class.getName());
196+
classes.add(AuthenticatedTagHandler.class.getName());
197+
classes.add(AuthorizeTagHandler.class.getName());
198+
199+
reflectiveClass.produce(ReflectiveClassBuildItem.builder(classes.toArray(new String[0]))
200+
.constructors()
201+
.methods()
202+
.fields()
203+
.serialization()
204+
.build());
205+
}
206+
188207
@Record(ExecutionTime.STATIC_INIT)
189208
@BuildStep
190-
void registerWebManifests(OmniFacesRecorder recorder, BuildProducer<UnremovableBeanBuildItem> unremovableBeans) {
209+
void registerUnremovableBeans(OmniFacesRecorder recorder, BuildProducer<UnremovableBeanBuildItem> unremovableBeans) {
191210
// make WebManifest beans un-removable, users still have to make them beans
192211
// https://github.com/quarkiverse/quarkus-omnifaces/issues/72
193212
unremovableBeans.produce(UnremovableBeanBuildItem.beanTypes(WebAppManifest.class));
@@ -204,6 +223,7 @@ void substrateResourceBuildItems(BuildProducer<NativeImageResourceBuildItem> nat
204223
"META-INF/omnifaces.taglib.xml",
205224
"META-INF/omnifaces-functions.taglib.xml",
206225
"META-INF/omnifaces-ui.taglib.xml",
226+
"META-INF/omnifaces-security.taglib.xml",
207227
"META-INF/web-fragment.xml",
208228
"META-INF/faces-config.xml",
209229
"META-INF/web.xml",

deployment/src/main/java/io/quarkiverse/omnifaces/deployment/devui/OmnifacesDevUIProcessor.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package io.quarkiverse.omnifaces.deployment.devui;
22

3-
import org.omnifaces.config.WebXml;
4-
53
import io.quarkus.deployment.IsDevelopment;
64
import io.quarkus.deployment.annotations.BuildProducer;
75
import io.quarkus.deployment.annotations.BuildStep;
@@ -17,18 +15,12 @@
1715
*/
1816
public class OmnifacesDevUIProcessor {
1917

20-
private static final String EXTENSION_NAME = "OmniFaces";
21-
2218
@BuildStep(onlyIf = IsDevelopment.class)
2319
void createCard(BuildProducer<CardPageBuildItem> cardPageBuildItemBuildProducer) {
2420
final CardPageBuildItem card = new CardPageBuildItem();
2521

26-
final PageBuilder<ExternalPageBuilder> versionPage = Page.externalPageBuilder("Version")
27-
.icon("font-awesome-solid:book")
28-
.url("https://omnifaces.org/")
29-
.doNotEmbed()
30-
.staticLabel(WebXml.class.getPackage().getImplementationVersion());
31-
card.addPage(versionPage);
22+
card.addLibraryVersion("org.omnifaces", "omnifaces", "OmniFaces",
23+
"https://omnifaces.org/");
3224

3325
final PageBuilder<ExternalPageBuilder> localePage = Page.externalPageBuilder("Locale")
3426
.icon("font-awesome-solid:location-dot")
@@ -44,8 +36,6 @@ void createCard(BuildProducer<CardPageBuildItem> cardPageBuildItemBuildProducer)
4436
.dynamicLabelJsonRPCMethodName("getSessionTimeout");
4537
card.addPage(sessionPage);
4638

47-
card.setCustomCard("qwc-omnifaces-card.js");
48-
4939
cardPageBuildItemBuildProducer.produce(card);
5040
}
5141

deployment/src/main/resources/dev-ui/qwc-omnifaces-card.js

Lines changed: 0 additions & 92 deletions
This file was deleted.

pom.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@
2424
</scm>
2525
<properties>
2626
<maven.compiler.release>17</maven.compiler.release>
27-
<quarkus.version>3.27.0</quarkus.version>
27+
<jakarta-security.version>4.0.0</jakarta-security.version>
28+
<quarkus.version>3.27.1</quarkus.version>
2829
<myfaces.version>4.1.2</myfaces.version>
29-
<omnifaces.version>5.0-M6</omnifaces.version>
30+
<omnifaces.version>5.0</omnifaces.version>
3031
</properties>
3132
<dependencyManagement>
3233
<dependencies>

runtime/pom.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
<groupId>io.quarkus</groupId>
2222
<artifactId>quarkus-jaxp</artifactId>
2323
</dependency>
24+
<dependency>
25+
<groupId>io.quarkus</groupId>
26+
<artifactId>quarkus-security</artifactId>
27+
</dependency>
2428
<dependency>
2529
<groupId>io.quarkus</groupId>
2630
<artifactId>quarkus-info-runtime-spi</artifactId>
@@ -37,6 +41,11 @@
3741
<groupId>org.omnifaces</groupId>
3842
<artifactId>omnifaces</artifactId>
3943
</dependency>
44+
<dependency>
45+
<groupId>jakarta.security.enterprise</groupId>
46+
<artifactId>jakarta.security.enterprise-api</artifactId>
47+
<version>${jakarta-security.version}</version>
48+
</dependency>
4049
<dependency>
4150
<groupId>org.graalvm.sdk</groupId>
4251
<artifactId>graal-sdk</artifactId>

runtime/src/main/java/io/quarkus/omnifaces/runtime/FacesInfoContributor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.Map;
55

66
import org.apache.commons.lang3.StringUtils;
7+
import org.apache.commons.lang3.Strings;
78
import org.omnifaces.util.Faces;
89

910
import io.quarkus.info.runtime.spi.InfoContributor;
@@ -18,7 +19,7 @@ public String name() {
1819

1920
@Override
2021
public Map<String, Object> data() {
21-
String facesImpl = StringUtils.removeIgnoreCase(StringUtils.removeIgnoreCase(Faces.getImplInfo(), "Core"), "Impl");
22+
String facesImpl = Strings.CI.remove(Strings.CI.remove(Faces.getImplInfo(), "Core"), "Impl");
2223
String server = "Undertow " + Undertow.class.getPackage().getImplementationVersion();
2324
String omniFaces = "OmniFaces: " + StringUtils.defaultIfEmpty(
2425
org.omnifaces.util.Faces.class.getPackage().getImplementationVersion(), "???");

0 commit comments

Comments
 (0)