클라이언트 측 JavaFX, 서버 측 JavaEE/Glassfish 및 데이터베이스 관리 시스템 인 MySQL을 사용하여 3 계층 응용 프로그램을 개발합니다. 또한 REST와 JSON을 사용하여 네트워크를 통해 데이터를 전송했습니다. 이제 JavaEE 보안 수단을 사용하여 인증을 구성하려고합니다. Enterprise Bean에서 어노테이션을 사용하여 선언적 접근 방식을 사용하고 있습니다. 글래스 피어 파일 영역 (사용자/그룹 추가)과 glassfish-web.xml 서술자 (그룹 이름과 역할 태그 추가)를 이미 구성했습니다. JavaEE 자습서에 따르면 클라이언트가 보호 된 리소스를 얻으려고 할 때 필요한 모든 준비가 완료되면 Glassfish는 클라이언트에게 로그인/비밀번호 쌍을 요청해야합니다. 웹 클라이언트라면 어떻게 작동하는지 알고 있지만 내 경우에는 데스크톱 JavaFX 클라이언트이고 Glassfish가 데스크톱 응용 프로그램에서 클라이언트에게 묻는 방법을 이해하지 못합니다. JavaFX-Glassfish로 인증 메커니즘을 만드는 방법. 도와주세요.JavaEE에서 JavaFX 클라이언트를 인증하는 방법
업데이트 브라우저 (Chrome, IE)에서 서블릿을 호출하려고하면 인증 창이 팝업되고 인증 메커니즘이 작동 할 수 있습니다. 하지만 JavaFX 창을 열면 아무 것도 볼 수 없습니다 (흰색 장면).
import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.paint.Color;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewSample extends Application {
private Scene scene;
@Override
public void start(Stage stage) {
// create the scene
stage.setTitle("Web View");
scene = new Scene(new Browser(), 750, 500, Color.web("#666970"));
stage.setScene(scene);
scene.getStylesheets().add("webviewsample/BrowserToolbar.css");
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
class Browser extends Region {
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
public Browser() {
getStyleClass().add("browser");
webEngine.load("http://localhost:8080/ForthDynamicWebProject/FirstServlet");
getChildren().add(browser);
}
}
웹 로그인 양식을 만들면 JavaFX 웹보기로 표시 할 수 있습니다. 그런 다음 양식을 제출하면 웹 애플리케이션과 동일한 방식으로 인증됩니다. 그런 다음 JavaFX 응용 프로그램에서 보낸 후속 요청은 설정된 jsessionid 쿠키를 존중해야하며 요청은 인증되어야합니다. 다시 말했듯이, 나는 이것을 해보려 고 본 적이 없지만 시도하려는 첫 번째 방법이 될 것입니다. –
@James_D 감사합니다. 오늘 저녁에 시험해 보겠습니다. – Rinat
@James_D 브라우저 (Chrome, IE)에서 서블릿을 호출하려고하면 인증 창이 팝업되고 인증 메커니즘은 작동하지 않습니다. 하지만 JavaFX 창을 열면 아무 것도 볼 수 없습니다. – Rinat