Skip to content

Commit dc20cb2

Browse files
committed
Remove FlashScope, just allow to modify the cookie name
1 parent ec588aa commit dc20cb2

6 files changed

Lines changed: 39 additions & 31 deletions

File tree

jooby/src/main/java/io/jooby/Context.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ public interface Context extends Registry {
121121

122122
default @Nonnull FlashMap flashMap() {
123123
return (FlashMap) getAttributes()
124-
.computeIfAbsent(FlashMap.NAME, key -> FlashMap.create(this, FlashScope.cookie()));
124+
.computeIfAbsent(FlashMap.NAME, key -> FlashMap
125+
.create(this, new Cookie(getRouter().getFlashCookie()).setHttpOnly(true)));
125126
}
126127

127128
default @Nonnull Value flash(@Nonnull String name) {

jooby/src/main/java/io/jooby/FlashScope.java

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

jooby/src/main/java/io/jooby/Jooby.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,15 @@ public Jooby errorCode(@Nonnull Class<? extends Throwable> type,
505505
return this;
506506
}
507507

508+
@Nonnull @Override public String getFlashCookie() {
509+
return router.getFlashCookie();
510+
}
511+
512+
@Nonnull @Override public Jooby setFlashCookie(@Nonnull String name) {
513+
router.setFlashCookie(name);
514+
return this;
515+
}
516+
508517
/**
509518
* Start application, find a web server, deploy application, start router, extension modules,
510519
* etc..

jooby/src/main/java/io/jooby/Router.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,21 @@ default Router error(@Nonnull Predicate<StatusCode> predicate,
640640

641641
@Nonnull Router executor(@Nonnull String name, @Nonnull Executor executor);
642642

643+
/**
644+
* Name of the flash cookie. Defaults is: <code>jooby.flash</code>.
645+
*
646+
* @return Name of the flash cookie. Defaults is: <code>jooby.flash</code>.
647+
*/
648+
@Nonnull String getFlashCookie();
649+
650+
/**
651+
* Set flash cookie name.
652+
*
653+
* @param name Flash cookie name.
654+
* @return This router.
655+
*/
656+
@Nonnull Router setFlashCookie(@Nonnull String name);
657+
643658
/**
644659
* Normalize a path by removing consecutives <code>/</code>(slashes), make it lower case and
645660
* removing trailing slash.

jooby/src/main/java/io/jooby/internal/RouterImpl.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ public Stack executor(Executor executor) {
154154

155155
private SessionOptions sessionOptions = new SessionOptions();
156156

157+
private String flashName = "jooby.flash";
158+
157159
public RouterImpl(ClassLoader loader) {
158160
this.source = new ClassSource(loader);
159161
this.analyzer = new RouteAnalyzer(source, false);
@@ -523,6 +525,15 @@ public void destroy() {
523525
return services.require(type);
524526
}
525527

528+
@Nonnull @Override public String getFlashCookie() {
529+
return flashName;
530+
}
531+
532+
@Nonnull @Override public Router setFlashCookie(@Nonnull String name) {
533+
this.flashName = name;
534+
return this;
535+
}
536+
526537
@Override public String toString() {
527538
StringBuilder buff = new StringBuilder();
528539
int size = IntStream.range(0, routes.size())

tests/src/test/java/io/jooby/FeaturedTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2118,8 +2118,7 @@ public void flashScope() {
21182118
public void customFlashScope() {
21192119
new JoobyRunner(app -> {
21202120
app.setContextPath("/custom");
2121-
2122-
app.install(new FlashScope(new Cookie("f")));
2121+
app.setFlashCookie("f");
21232122

21242123
app.get("/flash", ctx -> {
21252124
ctx.flash("success", "Thank you!");
@@ -2129,7 +2128,7 @@ public void customFlashScope() {
21292128
client.get("/custom/flash", rsp -> {
21302129
assertEquals(200, rsp.code());
21312130
String setCookie = rsp.header("Set-Cookie");
2132-
assertEquals("f=success=Thank+you%21;Path=/custom", setCookie);
2131+
assertEquals("f=success=Thank+you%21;Path=/custom;HttpOnly", setCookie);
21332132
});
21342133
});
21352134
}

0 commit comments

Comments
 (0)