簡體   English   中英

將 javafx 客戶端與 Spring Boot 和 Spring Security 結合使用

[英]using javafx client with spring boot and spring security

我將使用包含身份驗證的 Spring Boot 創建一個 javafx 客戶端和 http 服務器。

服務器計划使用 spring security 進行登錄,並為客戶端使用 appache httpClient。

我可以從這個結構創建一個登錄服務嗎?

還是我應該選擇不同的方法?

我了解 Spring 安全性使用 cookie 和 session 進行身份驗證。

您可以使用JavaFXSpring-Boot制作混合應用程序。 當然,您也可以使用Spring Security 我建議您使用maven項目來打包您的混合應用程序。

我可以從這個結構創建一個登錄服務嗎?

是的你可以!

還是我應該選擇不同的方法?

由於您可以將spring-security用於登錄服務,因此您可能不需要其他方法,但可以使用很多authentication-authorization庫。

為什么是 Apache-HttpClient?

您似乎打算使用Apache-HttpClient來綁定 JavaFX 和 Spring-Boot 服務。 實際上,您可以在 JavaFX 應用程序中使用登錄服務,而無需將該服務公開為 Restful 服務。 您可以使用 spring 的依賴注入在 JavaFX 控制器類中連接您的服務。 前任:

@Autowired
private LoginService loginService;

如果您對 spring 應用程序感到滿意,您還可以使用 spring 提供的功能,例如Spring Data JPA等。

SpringBoot + JavaFX 應用程序

這是混合應用程序的一個簡單示例,

import javafx.stage.Stage;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class YourApp extends Application {

    protected ConfigurableApplicationContext springContext;

    public static void main(final String[] args) {
        Application.launch(args);
    }

    @Override
    public void init() throws Exception {
        springContext = springBootApplicationContext();
    }

    @Override
    public void start(Stage stage) throws Exception {
        ....
    }

    @Override
    public void stop() throws Exception {
        springContext.close();
    }

    private ConfigurableApplicationContext springBootApplicationContext() {
        SpringApplicationBuilder builder = new SpringApplicationBuilder(YourApp.class);
        String[] args = getParameters().getRaw().stream().toArray(String[]::new);
        return builder.run(args);
    }

}

不可能在這里定義應用程序的boilerplate ,但上面的代碼可以啟動應用程序。

PS:您可以查看此JavaFXSpringBootApp樣板以查看所需的想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM