Definição de endpoints do controlador para integração de chaves de acesso

Em FrontendController.java, defina endpoints para lidar com solicitações para as páginas de login e perfil. O método index() deve renderizar a página de login, enquanto o método profile() validará a sessão do usuário e exibirá o perfil do usuário.

@Controllerpublic class FrontendController {  @Value(\\\"${projectID}\\\")  private String projectID;  @Value(\\\"${apiSecret}\\\")  private String apiSecret;  private final CorbadoSdk sdk;  @Autowired  public FrontendController(      @Value(\\\"${projectID}\\\") final String projectID, @Value(\\\"${apiSecret}\\\") final String apiSecret)      throws StandardException {    final Config config = new Config(projectID, apiSecret);    this.sdk = new CorbadoSdk(config);  }  @RequestMapping(\\\"/\\\")  public String index(final Model model) {    model.addAttribute(\\\"PROJECT_ID\\\", projectID);    return \\\"index\\\";  }  ...

Adicionar página de perfil de chave de acesso

Após a autenticação bem-sucedida, o componente Corbado UI redireciona o usuário. Esta página exibe informações sobre o usuário e fornece um botão para efetuar logout. Na pasta de modelos, adicione um arquivo profile.html com o seguinte conteúdo:

                             

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

Em seguida, crie um método profile() com anotação dentro do FrontendController.java:

@RequestMapping(\\\"/profile\\\")public String profile() {  return \\\"profile\\\";}

Verifique a sessão do Corbado

Antes de podermos usar as informações incorporadas na sessão, precisamos verificar se a sessão é válida. Portanto, pegamos o cookie cbo_short_session (a sessão) e verificamos sua assinatura usando o serviço de sessão do Corbado Java SDK. Isso pode ser feito com:

final SessionValidationResult validationResp =          sdk.getSessions().getAndValidateCurrentUser(cboShortSession);

Obtenha dados da sessão Corbado

Ele pega o cookie cbo_short_session, valida-o e retorna o UserID e o nome completo do usuário.

O código final para o mapeamento de perfil é o seguinte:

  @RequestMapping(\\\"/profile\\\")  public String profile(      final Model model, @CookieValue(\\\"cbo_short_session\\\") final String cboShortSession) {    try {      // Validate user from token      final SessionValidationResult validationResp =          sdk.getSessions().getAndValidateCurrentUser(cboShortSession);      // get list of emails from identifier service      List emails;      emails = sdk.getIdentifiers().listAllEmailsByUserId(validationResp.getUserID());      //      model.addAttribute(\\\"PROJECT_ID\\\", projectID);      model.addAttribute(\\\"USER_ID\\\", validationResp.getUserID());      model.addAttribute(\\\"USER_NAME\\\", validationResp.getFullName());      // select email of your liking or list all emails      model.addAttribute(\\\"USER_EMAIL\\\", emails.get(0).getValue());    } catch (final Exception e) {      System.out.println(e.getMessage());      model.addAttribute(\\\"ERROR\\\", e.getMessage());      return \\\"error\\\";    }    return \\\"profile\\\";  }

Lançando seu aplicativo

Para iniciar seu aplicativo Spring Boot, navegue até o diretório /complete e execute:

./mvnw spring-boot:run

Visite http://localhost:8080 no seu navegador para ver a página de login em ação.

\\\"How

Conclusão

Este guia demonstrou como integrar chaves de acesso em um aplicativo Java Spring Boot usando Corbado. Seguindo essas etapas, você pode implementar a autenticação sem senha com eficiência e segurança. Para documentação mais detalhada sobre gerenciamento de sessões e integração do Corbado em aplicativos existentes, consulte a documentação oficial do Corbado.

","image":"http://www.luping.net/uploads/20240911/172604988566e16e5d0837f.jpg","datePublished":"2024-09-11T18:18:05+08:00","dateModified":"2024-09-11T18:18:05+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como integrar chaves de acesso ao Java Spring Boot

Como integrar chaves de acesso ao Java Spring Boot

Publicado em 11/09/2024
Navegar:931

Introdução às chaves de acesso no Java Spring Boot

As chaves de acesso oferecem uma maneira moderna e segura de autenticar usuários sem depender de senhas tradicionais. Neste guia, orientaremos você na integração de chaves de acesso em um aplicativo Java Spring Boot usando Thymeleaf como mecanismo de modelo.

Utilizaremos o componente de UI com chave de acesso do Corbado para conectar-se a um back-end, simplificando o processo de implementação. Este tutorial pressupõe que você tenha um conhecimento básico de HTML e Java Spring Boot e que tenha instalado o Corbado Java SDK.

Veja o tutorial original completo

Pré-requisitos para implementar chaves de acesso no Java Spring Boot

Antes de começarmos, certifique-se de que a configuração do seu projeto inclui o Corbado Java SDK. Para este tutorial, usaremos a versão 0.0.1 como exemplo. Adicione a seguinte dependência ao seu arquivo pom.xml:

com.corbadocorbado-java0.0.1

Como alternativa, se você estiver usando Gradle, adicione:

implementation "com.corbado:corbado-java:0.0.1"

Configurando sua conta e projeto Corbado

Para começar, cadastre-se para uma conta Corbado através do painel do desenvolvedor. Durante a configuração, você configurará seu projeto selecionando “Corbado Complete” e escolhendo “Web app” para seu ambiente. Certifique-se de fornecer o URL do aplicativo e o ID da parte confiável, normalmente definidos como http://localhost:8080 e localhost, respectivamente. Essas configurações são cruciais para vincular as chaves de acesso ao domínio correto.

Em seguida, gere um segredo de API no painel do desenvolvedor Corbado. Isso será necessário para comunicações de back-end, incluindo recuperação de dados do usuário.

Construindo seu aplicativo Java Spring Boot Passkey

Clone o repositório inicial do Spring Boot:

git clone https://github.com/spring-guides/gs-spring-boot.git

Dentro deste projeto, renomeie HelloController.java para FrontendController.java. Este controlador servirá arquivos HTML com base nas solicitações do usuário. Em seu arquivo application.properties, armazene projectID e apiSecret como variáveis ​​de ambiente (ambos podem ser obtidos no painel do desenvolvedor Corbado).

Criando a página de login das chaves de acesso

Crie um arquivo index.html no diretório /complete/src/main/resources/templates. Este arquivo servirá como página de login, incorporando o componente de interface do usuário com chave de acesso do Corbado. Aqui está a estrutura básica:



  

Definição de endpoints do controlador para integração de chaves de acesso

Em FrontendController.java, defina endpoints para lidar com solicitações para as páginas de login e perfil. O método index() deve renderizar a página de login, enquanto o método profile() validará a sessão do usuário e exibirá o perfil do usuário.

@Controller
public class FrontendController {

  @Value("${projectID}")
  private String projectID;

  @Value("${apiSecret}")
  private String apiSecret;

  private final CorbadoSdk sdk;

  @Autowired
  public FrontendController(
      @Value("${projectID}") final String projectID, @Value("${apiSecret}") final String apiSecret)
      throws StandardException {
    final Config config = new Config(projectID, apiSecret);
    this.sdk = new CorbadoSdk(config);
  }

  @RequestMapping("/")
  public String index(final Model model) {
    model.addAttribute("PROJECT_ID", projectID);
    return "index";
  }
  ...

Adicionar página de perfil de chave de acesso

Após a autenticação bem-sucedida, o componente Corbado UI redireciona o usuário. Esta página exibe informações sobre o usuário e fornece um botão para efetuar logout. Na pasta de modelos, adicione um arquivo profile.html com o seguinte conteúdo:


  
    

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

Em seguida, crie um método profile() com anotação dentro do FrontendController.java:

@RequestMapping("/profile")
public String profile() {
  return "profile";
}

Verifique a sessão do Corbado

Antes de podermos usar as informações incorporadas na sessão, precisamos verificar se a sessão é válida. Portanto, pegamos o cookie cbo_short_session (a sessão) e verificamos sua assinatura usando o serviço de sessão do Corbado Java SDK. Isso pode ser feito com:

final SessionValidationResult validationResp =
          sdk.getSessions().getAndValidateCurrentUser(cboShortSession);

Obtenha dados da sessão Corbado

Ele pega o cookie cbo_short_session, valida-o e retorna o UserID e o nome completo do usuário.

O código final para o mapeamento de perfil é o seguinte:

  @RequestMapping("/profile")
  public String profile(
      final Model model, @CookieValue("cbo_short_session") final String cboShortSession) {
    try {
      // Validate user from token
      final SessionValidationResult validationResp =
          sdk.getSessions().getAndValidateCurrentUser(cboShortSession);
      // get list of emails from identifier service
      List emails;

      emails = sdk.getIdentifiers().listAllEmailsByUserId(validationResp.getUserID());

      //
      model.addAttribute("PROJECT_ID", projectID);
      model.addAttribute("USER_ID", validationResp.getUserID());
      model.addAttribute("USER_NAME", validationResp.getFullName());
      // select email of your liking or list all emails
      model.addAttribute("USER_EMAIL", emails.get(0).getValue());

    } catch (final Exception e) {
      System.out.println(e.getMessage());
      model.addAttribute("ERROR", e.getMessage());
      return "error";
    }
    return "profile";
  }

Lançando seu aplicativo

Para iniciar seu aplicativo Spring Boot, navegue até o diretório /complete e execute:

./mvnw spring-boot:run

Visite http://localhost:8080 no seu navegador para ver a página de login em ação.

How to Integrate Passkeys into Java Spring Boot

Conclusão

Este guia demonstrou como integrar chaves de acesso em um aplicativo Java Spring Boot usando Corbado. Seguindo essas etapas, você pode implementar a autenticação sem senha com eficiência e segurança. Para documentação mais detalhada sobre gerenciamento de sessões e integração do Corbado em aplicativos existentes, consulte a documentação oficial do Corbado.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/corbado/how-to-integrate-passkeys-into-java-spring-boot-3264?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3