Никаким образом не получается завести Basic Authentification через сервис, которые подается через http-invoker без контейнера, просо через Http сервер Java 6.
<bean name="exporter"
class="org.springframework.remoting.httpinvoker.SimpleHttpInvokerServiceExporter">
<property name="service" ref="DatabaseDao"/>
<property name="serviceInterface" value="shared.db.DatabaseDao"/>
</bean>
<bean id="httpServer"
class="org.springframework.remoting.support.SimpleHttpServerFactoryBean">
<property name="contexts">
<util:map>
<entry key="/remoting/DatabaseDao" value-ref="exporter"/>
</util:map>
</property>
<property name="port" value="8080" />
</bean>
Пока что есть такой код в самом DAO, который можно удаленно вызывать. В принципе работает, только после отсоединения необходимо его еще раз вызывать. Не хотелось бы дергать реконнект по каждому Exception и еще что-то придумывать по этому поводу. getAuthenticationManager() возвращает самописный менеджер, который возвращает роли из базы.
public int login(String username, String password) {
/*return getJdbcTemplate().queryForInt("select id from users where username=? and password=?",
new Object[]{username, password});*/
Authentication request = new UsernamePasswordAuthenticationToken(username, password);
Authentication result = getAuthenticationManager().authenticate(request);
SecurityContextHolder.getContext().setAuthentication(result);
return 0;
}
Не прошу писать код, просто прошу подсказать в сторону какого класса смотреть. Требуется перехватить Basic Authentication Credentials и сделать это так, чтобы в том коде можно было получать SecurityContextHolder.getContext() и установить его автентификацию.