问题描述
我将使用包含身份验证的spring boot创建一个Javafx客户端和http服务器.
I'm going to create a javafx client and http server using spring boot that includes authentication.
服务器正计划使用spring安全性进行登录,并为客户端使用httpClient.
The server is planning to use spring security for login and appache httpClient for clients.
我可以从该结构创建登录服务吗?
Can I create a login service from this structure?
还是应该选择其他方法?
Or should I choose a different method?
我了解Spring安全性使用cookie和会话进行身份验证.
I understand Spring security authenticates using cookie and session.
推荐答案
您可以使用JavaFX
和Spring-Boot
制作混合应用程序.当然,您也可以使用Spring Security
.我建议您使用maven
项目打包您的混合应用程序.
You can make a hybrid application using JavaFX
and Spring-Boot
. And of course, you can use Spring Security
as well. I recommend you to use maven
project to package your hybrid-application.
是的,可以!
由于可以将spring-security
用于登录服务,因此可能不需要其他方法,但是可以使用很多authentication-authorization
库.
As you can use spring-security
for your login service, you may not need other methods but you can use a lot of authentication-authorization
libraries.
似乎您打算使用Apache-HttpClient
来绑定JavaFX和Spring-Boot服务.实际上,您可以在JavaFX应用程序中使用登录服务,而无需将该服务公开为Restful Service.您可以使用spring的 Dependency Injection 将服务连接到JavaFX控制器类中.例如:
It seems you are planning to use Apache-HttpClient
to bind your JavaFX and Spring-Boot services. Actually you can use your login service in your JavaFX application without exposing the service as a Restful Service. You can use spring's Dependency Injection to wire your service in your JavaFX controller class. ex:
@Autowired
private LoginService loginService;
如果您对spring应用程序感到满意,还可以使用spring提供的功能,例如Spring Data JPA
等.
If you are comfortable with spring applications you can also use functionalities that spring provides such as Spring Data JPA
, etc.
这是混合应用程序的一个简单示例,
Here is a simple example of hybrid application,
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
,但是上面的代码可以启动应用程序.
It's not possible to define a boilerplate
of application here but the above code does the tricks to start the application.
这篇关于将javafx客户端与Spring Boot和Spring Security结合使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!