c# - Integration testing ASP.NET WebAPI controllers that use bearer authentication with identityserver3 -
i'm trying integration test web api controllers. application uses jwts authenticate users against resource server.
to spool application, i'm using testserver found in microsoft.owin.testing.
i can obtain valid jwt performing login browser do. proceed add jwt request follows:
request.addheader("authorization", "bearer " + accesstoken.rawdata);
that header arrives in owin pipeline. however, controllers protected [authorize]
-attribute return 401 unauthorized
when invoked.
the api protected using identityserver3 thinktecture, relevant section looks this:
var authority = "http://localhost:8080/idsrv/"; var parameters = new tokenvalidationparameters() { validaudiences = new[] { "implicitclient" } }; var options = new identityserverbearertokenauthenticationoptions { authority = authority, tokenvalidationparameters = parameters }; app.useidentityserverbearertokenauthentication(options); var configuration = new webapiconfiguration(this.container); configuration.configuration(app);
i don't know pointers problem, appreciated.
do want test token middleware? mean - not testing token middleware - controller logic based on authentication outcomes.
just write small inline middleware sets context.authentication.user
claimsprincipal want test with.
app.use(async (ctx, next) => { ctx.authentication.user = someprincipal; await next() };
Comments
Post a Comment