Eclipse Scout를 사용하여 데이터베이스 인증을 구현하려고합니다.Eclipse Scout - 데이터베이스 삭제 인증
저는 클라이언트 모듈에 DataSourceCredentialVerifier
클래스를 만들었습니다.이 모듈은 ICredentialVerifier
인터페이스를 구현합니다. 그런 다음 UiServletFilter
클래스의 init
메소드를 my verifier를 사용하도록 수정했습니다.
public class DataSourceCredentialVerifier implements ICredentialVerifier {
private static final Logger LOG = LoggerFactory.getLogger(DataSourceCredentialVerifier.class);
@Override
public int verify(String username, char[] password) throws IOException {
Object queryResult[][] = BEANS.get(IMySqlAuthService.class).load();
return AUTH_OK;
}
아직 인증 로직을 구현하지 않았습니다. 내 임무는 이제 깨끗한 데이터베이스 연결을 설정하는 것입니다. 이를 위해
은 내가 에서 다음 interface
가 모듈을 공유 생성 :
public interface IMySqlAuthService extends IService {
Object[][] load();
}
구현은 서버 모듈에 있습니다
public class MySqlAuthService implements IMySqlAuthService {
@Override
public Object[][] load() {
String sql = "select username, password from users ";
Object[][] queryResult = SQL.select(sql, null, null);
return queryResult;
}
}
먼저 나는 경우,보고 싶은이 적어도 쿼리의 일부이지만 여기에 AssertionException이 발생합니다.
Object queryResult[][] = BEANS.get(IMySqlAuthService.class).load();
org.eclipse.scout.rt.platform.util.Assertions$AssertionException: Assertion error: no instance found for query: interface org.eclipse.scout.app.shared.services.IMySqlAuthService
at org.eclipse.scout.rt.platform.util.Assertions.fail(Assertions.java:580)
at org.eclipse.scout.rt.platform.util.Assertions.assertNotNull(Assertions.java:87)
at org.eclipse.scout.rt.platform.BEANS.get(BEANS.java:41)
구현 된 MySqlAuthService
인스턴스가 없습니다. BeanManager
이 나를 위해 인스턴스를 만들어야한다고 가정합니다. 내 IMySqlAuthService
인터페이스가 @ApplicationScoped
주석이있는 IService
에서 확장되기 때문에 MySqlAuthService
을 Bean으로 등록해야합니다.
MySqlAuthService
에 @Bean
주석을 추가하면 동일한 예외가 발생합니다.
BeanManager
및 주석에 대한 몇 가지 정보 : 여기 https://eclipsescout.github.io/6.0/technical-guide.html#sec-bean.manager
또 다른 접근 s.o.입니다 시도했지만 올바른 느낌이 들지 않습니다. https://www.eclipse.org/forums/index.php/t/1079741/
서비스 사용 방법을 어떻게 알 수 있습니까?