@Entity @Table(name = "users") public class User extends Model { @Column(name = "username") public String username; @Column(name = "password") public String password; @Column(name = "role") public String role; // Getter and setter methods } public class UserController extends Controller { public Result register() { } public Result login() { } } @With(Authenticator.class) @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface Authorized { String value() default ""; } public class Authenticator extends Action.Simple { public CompletionStage<Result> call(Http.Context ctx) { String role = getUserRole(ctx); if (role.equals("admin")) { return delegate.call(ctx); } else { return CompletableFuture.completedFuture(forbidden("Access denied.")); } } private String getUserRole(Http.Context ctx) { } } plaintext GET /register controllers.UserController.register() POST /register controllers.UserController.registerSubmit() GET /login controllers.UserController.login() POST /login controllers.UserController.loginSubmit() GET /admin @controllers.Authorized controllers.AdminController.index()


上一篇:
下一篇:
切换中文