我试图用java(没有spring)做一个简单的OAuth2例子,但是当我尝试注入sistem的一个类(TokenDao)时,出现了这个错误:
migrate
我这样做只是为了学习OAuth2,所以我不使用数据库或其他想法,在getToken上我将“ usuario”和“ senha”连接起来。
有课程:
类别:游戏(网络服务)
javax.servlet.ServletException: A MultiException has 3 exceptions. They are:
1. org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=TokenDao,parent=Game,qualifiers={},position=-1,optional=false,self=false,unqualified=null,903415256)
2. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of br.com.caixa.rest.servicos.Game errors were found
3. java.lang.IllegalStateException: Unable to perform operation: resolve on br.com.caixa.rest.servicos.Game
Classe:TokenDao
public class Game {
@Inject
private TokenDao td;
@Inject
private HttpServletRequest req;
private List<Jogo> lista = new ArrayList<Jogo>();
private List<Jogo> geraLista(){
lista.add(new Jogo("Chrono Trigger", "RPG"));
lista.add(new Jogo("the witcher 3", "Action RPG"));
lista.add(new Jogo("Star Craft 2", "RTS"));
lista.add(new Jogo("Fire Emblem Tree Houses", "Strategy"));
return lista;
}
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Jogo retUmJogo(){
Jogo j = new Jogo("Chrono Trigger", "RPG");
return j;
}
@GET
@Path("/jogos")
@Produces(MediaType.APPLICATION_JSON)
public List<Jogo> listaJogos(){
List<Jogo> lista = geraLista();
return lista;
}
@POST
@Path("/usuToken")
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN})
public String listaTeste(Login login){
this.td.insereToken(login.getToken());
return login.getToken();
}
public Response cadastraJogo(Jogo jogo){
Response unauthorized = Response.status(Response.Status.UNAUTHORIZED).build();
try {
OAuthAccessResourceRequest oauthRequest = new OAuthAccessResourceRequest(req);
String accessToken = oauthRequest.getAccessToken();
if(td.validaToken(accessToken)){
lista.add(jogo);
}else{
return unauthorized;
}
return Response.status(Response.Status.OK).build();
} catch (Exception e) {
return unauthorized;
}
}
Classe:登录
@ApplicationScoped
public class TokenDao {
List<String> tokens = new ArrayList<String>();
public void insereToken(String token){
tokens.add(token);
}
public Boolean validaToken(String token){
return tokens.contains(token);
}
}