Skip to content

Commit

Permalink
submit java-web-ru/session
Browse files Browse the repository at this point in the history
  • Loading branch information
hexlet-cli committed Feb 13, 2024
1 parent 1c82601 commit a617c2f
Show file tree
Hide file tree
Showing 8 changed files with 235 additions and 235 deletions.
2 changes: 1 addition & 1 deletion .current.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"assignment":"java-web-ru/cookies"}
{"assignment":"java-web-ru/session"}
Empty file modified java-web-ru/session/gradlew
100644 → 100755
Empty file.
184 changes: 92 additions & 92 deletions java-web-ru/session/gradlew.bat
Original file line number Diff line number Diff line change
@@ -1,92 +1,92 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem

@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto execute

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar


@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*

:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem

@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto execute

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar


@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*

:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega
74 changes: 37 additions & 37 deletions java-web-ru/session/src/main/java/exercise/App.java
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
package exercise;

import exercise.dto.MainPage;
import exercise.repository.UsersRepository;
import io.javalin.Javalin;
import exercise.controller.SessionsController;
import exercise.util.NamedRoutes;

import java.util.Collections;


public final class App {

public static Javalin getApp() {

var app = Javalin.create(config -> {
config.plugins.enableDevLogging();
});

// BEGIN
app.get(NamedRoutes.rootPath(), ctx -> {
var page = new MainPage(ctx.sessionAttribute("currentUser"));
ctx.render("index.jte", Collections.singletonMap("page", page));
});
app.get(NamedRoutes.buildSessionPath(), SessionsController::build);
app.post(NamedRoutes.loginPath(), SessionsController::create);
app.post(NamedRoutes.logoutPath(), SessionsController::destroy);
// END

return app;
}

public static void main(String[] args) {
Javalin app = getApp();
app.start(7070);
}
}
package exercise;

import exercise.dto.MainPage;
import exercise.repository.UsersRepository;
import io.javalin.Javalin;
import exercise.controller.SessionsController;
import exercise.util.NamedRoutes;

import java.util.Collections;


public final class App {

public static Javalin getApp() {

var app = Javalin.create(config -> {
config.plugins.enableDevLogging();
});

// BEGIN
app.get(NamedRoutes.rootPath(), ctx -> {
var page = new MainPage(ctx.sessionAttribute("currentUser"));
ctx.render("index.jte", Collections.singletonMap("page", page));
});
app.get(NamedRoutes.buildSessionPath(), SessionsController::build);
app.post(NamedRoutes.loginPath(), SessionsController::create);
app.post(NamedRoutes.logoutPath(), SessionsController::destroy);
// END

return app;
}

public static void main(String[] args) {
Javalin app = getApp();
app.start(7070);
}
}
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
package exercise.controller;

import java.util.Collections;
import exercise.dto.LoginPage;
import exercise.model.User;


import exercise.util.Generator;
import exercise.util.NamedRoutes;
import exercise.util.Security;
import io.javalin.http.Context;
import io.javalin.validation.ValidationException;

public class SessionsController {

// BEGIN
public static void build(Context ctx) {
var page = new LoginPage("", null);
ctx.render("build.jte", Collections.singletonMap("page", page));
}

public static void create(Context ctx) {
try {
var nickname = ctx.formParamAsClass("name", String.class)
.check(value -> Generator.getUsers().stream()
.map(User::getName)
.anyMatch(value::equals), "Wrong username or password")
.get();
var user = Generator.getUsers().stream()
.filter(us -> us.getName().equals(nickname))
.findAny()
.get();
ctx.formParamAsClass("password", String.class)
.check(value -> user.getPassword().equals(Security.encrypt(value)), "Wrong username or password")
.get();
ctx.sessionAttribute("currentUser", nickname);
ctx.redirect(NamedRoutes.rootPath());
} catch (ValidationException e) {
var page = new LoginPage(ctx.formParam("name"), e.getErrors());
ctx.render("build.jte", Collections.singletonMap("page", page));
}
}

public static void destroy(Context ctx) {
ctx.sessionAttribute("currentUser", null);
ctx.redirect(NamedRoutes.rootPath());
}
// END
}
package exercise.controller;

import java.util.Collections;
import exercise.dto.LoginPage;
import exercise.model.User;


import exercise.util.Generator;
import exercise.util.NamedRoutes;
import exercise.util.Security;
import io.javalin.http.Context;
import io.javalin.validation.ValidationException;

public class SessionsController {

// BEGIN
public static void build(Context ctx) {
var page = new LoginPage("", null);
ctx.render("build.jte", Collections.singletonMap("page", page));
}

public static void create(Context ctx) {
try {
var nickname = ctx.formParamAsClass("name", String.class)
.check(value -> Generator.getUsers().stream()
.map(User::getName)
.anyMatch(value::equals), "Wrong username or password")
.get();
var user = Generator.getUsers().stream()
.filter(us -> us.getName().equals(nickname))
.findAny()
.get();
ctx.formParamAsClass("password", String.class)
.check(value -> user.getPassword().equals(Security.encrypt(value)), "Wrong username or password")
.get();
ctx.sessionAttribute("currentUser", nickname);
ctx.redirect(NamedRoutes.rootPath());
} catch (ValidationException e) {
var page = new LoginPage(ctx.formParam("name"), e.getErrors());
ctx.render("build.jte", Collections.singletonMap("page", page));
}
}

public static void destroy(Context ctx) {
ctx.sessionAttribute("currentUser", null);
ctx.redirect(NamedRoutes.rootPath());
}
// END
}
Loading

0 comments on commit a617c2f

Please sign in to comment.