Java 类io.netty.handler.codec.http.cookie.Cookie 实例源码
项目:netty-socketio-demo
文件:CookieUserAuthorizationListener.java
/**
* 从Http Cookie中获取用户Id
*
* @param data
* @return
*/
public static final PushUser getUser(HandshakeData data) {
String _cookie = data.getSingleHeader(HttpHeaders.Names.COOKIE);
if (_cookie != null) {
Set<Cookie> cookies = ServerCookieDecoder.LAX.decode(_cookie);
for (Cookie cookie : cookies) {
if (TokenManager.LOGIN_COOKIE_NAME.equals(cookie.name())) {
String value = cookie.value();
if (value != null) {
return getUserIdFromCookie(value);
}
}
}
}
return null;
}
项目:tasfe-framework
文件:HttpSessionInterceptor.java
@Override
public void onRequestReceived(ChannelHandlerContext ctx, HttpRequest request) {
HttpSessionThreadLocal.unset();
Collection<Cookie> cookies = Utils.getCookies(HttpSessionImpl.SESSION_ID_KEY, request);
if (cookies != null) {
for (Cookie cookie : cookies) {
String jsessionId = cookie.value();
HttpSession s = HttpSessionThreadLocal.getSessionStore().findSession(jsessionId);
if (s != null) {
HttpSessionThreadLocal.set(s);
this.sessionRequestedByCookie = true;
break;
}
}
}
}
项目:timely
文件:TwoWaySSLIT.java
protected HttpsURLConnection getUrlConnection(String username, String password, URL url) throws Exception {
HttpsURLConnection.setDefaultSSLSocketFactory(getSSLSocketFactory());
URL loginURL = new URL(url.getProtocol() + "://" + url.getHost() + ":" + url.getPort() + "/login");
HttpsURLConnection con = (HttpsURLConnection) loginURL.openConnection();
con.setHostnameVerifier((host, session) -> true);
con.setRequestMethod("GET");
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json");
con.connect();
int responseCode = con.getResponseCode();
if (401 == responseCode) {
throw new UnauthorizedUserException();
}
Assert.assertEquals(200, responseCode);
List<String> cookies = con.getHeaderFields().get(Names.SET_COOKIE);
Assert.assertEquals(1, cookies.size());
Cookie sessionCookie = ClientCookieDecoder.STRICT.decode(cookies.get(0));
Assert.assertEquals(Constants.COOKIE_NAME, sessionCookie.name());
con = (HttpsURLConnection) url.openConnection();
con.setRequestProperty(Names.COOKIE, sessionCookie.name() + "=" + sessionCookie.value());
con.setHostnameVerifier((host, session) -> true);
return con;
}
项目:riposte
文件:BaseResponseInfoTest.java
public static <T> BaseResponseInfo<T> createNewBaseResponseInfoForTesting(Integer httpStatusCode,
HttpHeaders headers,
String desiredContentWriterMimeType,
Charset desiredContentWriterEncoding,
Set<Cookie> cookies,
boolean preventCompressedOutput) {
return new BaseResponseInfo<T>(httpStatusCode, headers, desiredContentWriterMimeType, desiredContentWriterEncoding, cookies, preventCompressedOutput) {
@Override
public boolean isChunkedResponse() {
throw new UnsupportedOperationException("not implemented, don't call me during the test");
}
@Override
public T getContentForFullResponse() {
throw new UnsupportedOperationException("not implemented, don't call me during the test");
}
@Override
public void setContentForFullResponse(T contentForFullResponse) {
throw new UnsupportedOperationException("not implemented, don't call me during the test");
}
};
}
项目:riposte
文件:BaseResponseInfoTest.java
@Test
public void uber_constructor_for_full_response_sets_fields_as_expected() {
// given
int httpStatusCode = 200;
HttpHeaders headers = new DefaultHttpHeaders();
String mimeType = "text/text";
Charset contentCharset = CharsetUtil.UTF_8;
Set<Cookie> cookies = Sets.newHashSet(new DefaultCookie("key1", "val1"), new DefaultCookie("key2", "val2"));
boolean preventCompressedResponse = true;
// when
BaseResponseInfo<?> responseInfo = createNewBaseResponseInfoForTesting(httpStatusCode, headers, mimeType, contentCharset, cookies, preventCompressedResponse);
// then
assertThat(responseInfo.getHttpStatusCode(), is(httpStatusCode));
assertThat(responseInfo.getHeaders(), is(headers));
assertThat(responseInfo.getDesiredContentWriterMimeType(), is(mimeType));
assertThat(responseInfo.getDesiredContentWriterEncoding(), is(contentCharset));
assertThat(responseInfo.getCookies(), is(cookies));
assertThat(responseInfo.getUncompressedRawContentLength(), nullValue());
assertThat(responseInfo.isPreventCompressedOutput(), is(preventCompressedResponse));
assertThat(responseInfo.isResponseSendingStarted(), is(false));
assertThat(responseInfo.isResponseSendingLastChunkSent(), is(false));
}
项目:riposte
文件:HttpUtilsTest.java
@Test
public void extractCookies_works_if_cookies_defined_in_headers() {
// given
Cookie cookie1 = new DefaultCookie(UUID.randomUUID().toString(), UUID.randomUUID().toString());
Cookie cookie2 = new DefaultCookie(UUID.randomUUID().toString(), UUID.randomUUID().toString());
HttpHeaders headers = new DefaultHttpHeaders().add(HttpHeaders.Names.COOKIE, ClientCookieEncoder.LAX.encode(cookie1, cookie2));
HttpRequest nettyRequestMock = mock(HttpRequest.class);
doReturn(headers).when(nettyRequestMock).headers();
// when
Set<Cookie> extractedCookies = HttpUtils.extractCookies(nettyRequestMock);
// then
assertThat(extractedCookies.contains(cookie1), is(true));
assertThat(extractedCookies.contains(cookie2), is(true));
}
项目:riposte
文件:HttpUtilsTest.java
@Test
public void extractCookies_works_if_cookies_defined_in_trailing_headers() {
// given
Cookie cookie1 = new DefaultCookie(UUID.randomUUID().toString(), UUID.randomUUID().toString());
Cookie cookie2 = new DefaultCookie(UUID.randomUUID().toString(), UUID.randomUUID().toString());
HttpHeaders trailingHeaders = new DefaultHttpHeaders().add(HttpHeaders.Names.COOKIE, ClientCookieEncoder.LAX.encode(cookie1, cookie2));
FullHttpRequest nettyRequestMock = mock(FullHttpRequest.class);
doReturn(new DefaultHttpHeaders()).when(nettyRequestMock).headers();
doReturn(trailingHeaders).when(nettyRequestMock).trailingHeaders();
// when
Set<Cookie> extractedCookies = HttpUtils.extractCookies(nettyRequestMock);
// then
assertThat(extractedCookies.contains(cookie1), is(true));
assertThat(extractedCookies.contains(cookie2), is(true));
}
项目:riposte
文件:HttpUtilsTest.java
@Test
public void extractCookies_handles_cookie_values_leniently() {
// given
//these are cookie values seen in the wild...
Cookie cookie1 = new DefaultCookie(UUID.randomUUID().toString(), "2094%3Az%7C2021%3Ab");
Cookie cookie2 = new DefaultCookie(UUID.randomUUID().toString(), "geoloc=cc=US,rc=OR,tp=vhigh,tz=PST,la=45.4978,lo=-122.6937,bw=5000");
Cookie cookie3 = new DefaultCookie(UUID.randomUUID().toString(), "\"dm=n.com&si=27431295-a282-4745-8cd5-542e7fce" +
"429e&ss=1477551008358&sl=76&tt=437632&obo=12&sh=1477552753923%3D76%3A12%3A437632%2C1477552698670%3D75%3" +
"A12%3A429879%2C1477552677137%3D74%3A12%3A426596%2C1477552672564%3D73%3A12%3A425585%2C1477552669893%3D72" +
"%3A12%3A423456&bcn=%2F%2F3408178b.mpstat.us%2F&ld=1477552753923&r=http%3A%2F%2Fwww.nike.com%2Fbe%2Fde_de%" +
"2F&ul=1477552756811\"");
HttpHeaders headers = new DefaultHttpHeaders().add(HttpHeaders.Names.COOKIE, ClientCookieEncoder.LAX.encode(cookie1, cookie2, cookie3));
HttpRequest nettyRequestMock = mock(HttpRequest.class);
doReturn(headers).when(nettyRequestMock).headers();
// when
Set<Cookie> extractedCookies = HttpUtils.extractCookies(nettyRequestMock);
// then
assertThat(extractedCookies.contains(cookie1), is(true));
assertThat(extractedCookies.contains(cookie2), is(true));
assertThat(extractedCookies.contains(cookie3), is(true));
}
项目:lannister
文件:HttpResponse.java
public static HttpResponse createServerDefault(String requestCookie) {
HttpResponse ret = new HttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.buffer());
ret.headers().set(HttpHeaderNames.CONTENT_TYPE, "application/json; charset=UTF-8");
if (requestCookie == null) { return ret; }
Set<Cookie> cookies = ServerCookieDecoder.STRICT.decode(requestCookie);
if (cookies.isEmpty()) { return ret; }
// Reset the cookies if necessary.
for (Cookie cookie : cookies) {
ret.headers().add(HttpHeaderNames.SET_COOKIE, ClientCookieEncoder.STRICT.encode(cookie));
}
return ret;
}
项目:Dream-Catcher
文件:HarCaptureFilter.java
protected void captureRequestCookies(HttpRequest httpRequest) {
Log.e("InnerHandle", "captureRequestCookies " + harEntry.getId());
String cookieHeader = httpRequest.headers().get(HttpHeaders.Names.COOKIE);
if (cookieHeader == null) {
return;
}
Set<Cookie> cookies = ServerCookieDecoder.LAX.decode(cookieHeader);
for (Cookie cookie : cookies) {
HarCookie harCookie = new HarCookie();
harCookie.setName(cookie.name());
harCookie.setValue(cookie.value());
harRequest.getRequest().getCookies().add(harCookie);
harRequest.addHeader(cookie.name(), cookie.value());
}
}
项目:nomulus
文件:TestUtils.java
public static FullHttpRequest makeEppHttpRequest(
String content,
String host,
String path,
String accessToken,
String sslClientCertificateHash,
String serverHostname,
String clientAddress,
Cookie... cookies) {
FullHttpRequest request = makeHttpPostRequest(content, host, path);
request
.headers()
.set(HttpHeaderNames.AUTHORIZATION, "Bearer " + accessToken)
.set(HttpHeaderNames.CONTENT_TYPE, EPP_CONTENT_TYPE)
.set(HttpHeaderNames.ACCEPT, EPP_CONTENT_TYPE)
.set(SSL_CLIENT_CERTIFICATE_HASH_FIELD, sslClientCertificateHash)
.set(REQUESTED_SERVERNAME_VIA_SNI_FIELD, serverHostname)
.set(FORWARDED_FOR_FIELD, clientAddress);
if (cookies.length != 0) {
request.headers().set(HttpHeaderNames.COOKIE, ClientCookieEncoder.STRICT.encode(cookies));
}
return request;
}
项目:nomulus
文件:EppServiceHandlerTest.java
@Test
public void testSuccess_setCookies() throws Exception {
setHandshakeSuccess();
// First inbound message is hello.
channel.readInbound();
String responseContent = "<epp>response</epp>";
Cookie cookie1 = new DefaultCookie("name1", "value1");
Cookie cookie2 = new DefaultCookie("name2", "value2");
channel.writeOutbound(
makeEppHttpResponse(responseContent, HttpResponseStatus.OK, cookie1, cookie2));
ByteBuf response = channel.readOutbound();
assertThat(response).isEqualTo(Unpooled.wrappedBuffer(responseContent.getBytes(UTF_8)));
String requestContent = "<epp>request</epp>";
channel.writeInbound(Unpooled.wrappedBuffer(requestContent.getBytes(UTF_8)));
FullHttpRequest request = channel.readInbound();
assertHttpRequestEquivalent(request, makeEppHttpRequest(requestContent, cookie1, cookie2));
// Nothing further to pass to the next handler.
assertThat((Object) channel.readInbound()).isNull();
assertThat((Object) channel.readOutbound()).isNull();
assertThat(channel.isActive()).isTrue();
}
项目:netty-rest
文件:IRequestParameter.java
@Override
public String extract(ObjectNode node, RakamHttpRequest request)
{
for (Cookie cookie : request.cookies()) {
if (name.equals(cookie.name())) {
// TODO fixme: the value of cookie parameter always must be String.
return cookie.value();
}
}
if (required) {
throw new HttpRequestException("'" + name + "' cookie is required.", BAD_REQUEST);
}
return null;
}
项目:blynk-server
文件:SessionDao.java
public User getUserFromCookie(FullHttpRequest request) {
String cookieString = request.headers().get(HttpHeaderNames.COOKIE);
if (cookieString != null) {
Set<Cookie> cookies = ServerCookieDecoder.STRICT.decode(cookieString);
if (!cookies.isEmpty()) {
for (Cookie cookie : cookies) {
if (isValid(cookie)) {
String token = cookie.value();
return httpSession.get(token);
}
}
}
}
return null;
}
项目:activemq-artemis
文件:NettyConnector.java
@Override
public void channelRead(final ChannelHandlerContext ctx, final Object msg) throws Exception {
FullHttpResponse response = (FullHttpResponse) msg;
if (httpRequiresSessionId && !active) {
final List<String> setCookieHeaderValues = response.headers().getAll(HttpHeaderNames.SET_COOKIE);
for (String setCookieHeaderValue : setCookieHeaderValues) {
final Cookie cookie = ClientCookieDecoder.LAX.decode(setCookieHeaderValue);
if ("JSESSIONID".equals(cookie.name())) {
this.cookie = setCookieHeaderValue;
break;
}
}
active = true;
handShakeFuture.run();
}
waitingGet = false;
ctx.fireChannelRead(response.content());
}
项目:glowroot
文件:HttpSessionManager.java
private CommonResponse createSession(String username, Set<String> roles, boolean ldap)
throws Exception {
String sessionId = new BigInteger(130, secureRandom).toString(32);
ImmutableSession session = ImmutableSession.builder()
.caseAmbiguousUsername(username)
.ldap(ldap)
.roles(roles)
.lastRequest(clock.currentTimeMillis())
.build();
sessionMap.put(sessionId, session);
String layoutJson = layoutService
.getLayoutJson(session.createAuthentication(central, configRepository));
CommonResponse response = new CommonResponse(OK, MediaType.JSON_UTF_8, layoutJson);
Cookie cookie =
new DefaultCookie(configRepository.getWebConfig().sessionCookieName(), sessionId);
cookie.setHttpOnly(true);
cookie.setPath("/");
response.setHeader(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.STRICT.encode(cookie));
purgeExpiredSessions();
auditSuccessfulLogin(username);
return response;
}
项目:rakam
文件:UserHttpService.java
private List<Cookie> mapProperties(String project, User req, RakamHttpRequest request) {
InetAddress socketAddress = ((InetSocketAddress) request.context().channel()
.remoteAddress()).getAddress();
List<Cookie> cookies = null;
BatchUserOperationRequest op = new BatchUserOperationRequest(req.api,
ImmutableList.of(new BatchUserOperations(req.id, req.properties, null, null, null, null)));
for (UserPropertyMapper mapper : mappers) {
try {
List<Cookie> map = mapper.map(project, op.data, new HttpRequestParams(request), socketAddress);
if (map != null) {
if (cookies == null) {
cookies = new ArrayList<>();
}
cookies.addAll(map);
}
} catch (Exception e) {
LOGGER.error(e, "Error while mapping user properties in " + mapper.getClass().toString());
return null;
}
}
return cookies;
}
项目:rakam
文件:CustomEventMapperHttpService.java
@Override
public CompletableFuture<List<Cookie>> mapAsync(Event event, RequestParams requestParams, InetAddress sourceAddress, HttpHeaders responseHeaders) {
return mapInternal(event.project(), new EventsProxy() {
@Override
public Event.EventContext api() {
return event.api();
}
@Override
public String project() {
return event.project();
}
@Override
public Iterator<EventProxy> events() {
return Iterators.singletonIterator(new ListEventProxy(event));
}
}, requestParams, sourceAddress, responseHeaders);
}
项目:rakam
文件:CustomEventMapperHttpService.java
@Override
public CompletableFuture<List<Cookie>> mapAsync(EventList events, RequestParams requestParams, InetAddress sourceAddress, HttpHeaders responseHeaders) {
EventsProxy eventsProxy = new EventsProxy() {
@Override
public Event.EventContext api() {
return events.api;
}
@Override
public String project() {
return events.project;
}
@Override
public Iterator<EventProxy> events() {
return Iterators.transform(events.events.iterator(), new Function<Event, EventProxy>() {
@Nullable
@Override
public EventProxy apply(@Nullable Event f) {
return new ListEventProxy(f);
}
});
}
};
return mapInternal(events.project, eventsProxy, requestParams, sourceAddress, responseHeaders);
}
项目:rakam
文件:ReferrerEventMapper.java
@Override
public List<Cookie> map(String project, List<? extends ISingleUserBatchOperation> user, RequestParams extraProperties, InetAddress sourceAddress) {
for (ISingleUserBatchOperation data : user) {
if (data.getSetProperties() != null) {
mapInternal(extraProperties, data.getSetProperties().get("_referrer"),
data.getSetProperties().get("_host"),
new MapProxyGenericRecord(data.getSetProperties()));
}
if (data.getSetPropertiesOnce() != null) {
mapInternal(extraProperties, data.getSetPropertiesOnce().get("_referrer"),
data.getSetPropertiesOnce().get("_host"),
new MapProxyGenericRecord(data.getSetProperties()));
}
}
return null;
}
项目:rakam
文件:UserIdEventMapper.java
@Override
public List<Cookie> map(Event event, RequestParams requestParams, InetAddress sourceAddress, HttpHeaders responseHeaders) {
GenericRecord properties = event.properties();
if (properties.get("_user") == null) {
Schema.Field user = event.properties().getSchema().getField("_user");
if (user == null) {
return null;
}
Schema.Type type = user.schema().getTypes().get(1).getType();
Object anonymousUser = requestParams.cookies().stream()
.filter(e -> e.name().equals("_anonymous_user")).findAny()
.map(e -> cast(type, e.value())).orElse(generate(type));
properties.put("_user", anonymousUser);
DefaultCookie cookie = new DefaultCookie("_anonymous_user", String.valueOf(anonymousUser));
cookie.setPath("/");
return ImmutableList.of(cookie);
}
return null;
}
项目:rakam
文件:UserIdEventMapper.java
@Override
public List<Cookie> map(String project, List<? extends ISingleUserBatchOperation> user, RequestParams requestParams, InetAddress sourceAddress) {
// if (user.id == null) {
// FieldType fieldType = userTypeCache.getUnchecked(project);
// Schema field = AvroUtil.generateAvroSchema(fieldType);
// Schema.Type type = field.getTypes().get(1).getType();
// Object anonymousUser = requestParams.cookies().stream()
// .filter(e -> e.name().equals("_anonymous_user")).findAny()
// .map(e -> cast(type, e.value())).orElse(generate(type));
//
// user.setId(anonymousUser);
// return ImmutableList.of(new DefaultCookie("_anonymous_user", String.valueOf(anonymousUser)));
// }
//
return null;
}
项目:rakam
文件:TestGeoIPEventMapper.java
@Test(dataProvider = "google-ips")
public void testIspEventMapper(Map<String, Object> props, InetAddress address)
throws Exception {
MaxmindGeoIPEventMapper mapper = new MaxmindGeoIPEventMapper(new MaxmindGeoIPModuleConfig()
.setAttributes("")
.setIspDatabaseUrl(new URL("https://github.com/maxmind/MaxMind-DB/raw/master/test-data/GeoIP2-ISP-Test.mmdb")));
FieldDependencyBuilder builder = new FieldDependencyBuilder();
mapper.addFieldDependency(builder);
Record properties = new Record(Schema.createRecord(ImmutableList.of(
new Schema.Field("_ip", Schema.create(NULL), null, null),
new Schema.Field("__ip", Schema.create(STRING), null, null),
new Schema.Field("_isp", Schema.create(STRING), null, null))));
props.forEach(properties::put);
Event event = new Event("testproject", "testcollection", null, null, properties);
List<Cookie> resp = mapper.map(event, EventMapper.RequestParams.EMPTY_PARAMS, address, null);
assertTrue(resp == null);
assertEquals(event.getAttribute("_isp"), "Level 3 Communications");
GenericData.get().validate(properties.getSchema(), properties);
}
项目:rakam
文件:TestGeoIPEventMapper.java
@Test(dataProvider = "google-ips")
public void testConnectionTypeEventMapper(Map<String, Object> props, InetAddress address)
throws Exception {
MaxmindGeoIPEventMapper mapper = new MaxmindGeoIPEventMapper(new MaxmindGeoIPModuleConfig()
.setAttributes("")
.setConnectionTypeDatabaseUrl(new URL("https://github.com/maxmind/MaxMind-DB/raw/master/test-data/GeoIP2-Connection-Type-Test.mmdb")));
FieldDependencyBuilder builder = new FieldDependencyBuilder();
mapper.addFieldDependency(builder);
Record properties = new Record(Schema.createRecord(ImmutableList.of(
new Schema.Field("_ip", Schema.create(NULL), null, null),
new Schema.Field("__ip", Schema.create(STRING), null, null),
new Schema.Field("_connection_type", Schema.create(STRING), null, null))));
props.forEach(properties::put);
Event event = new Event("testproject", "testcollection", null, null, properties);
List<Cookie> resp = mapper.map(event, EventMapper.RequestParams.EMPTY_PARAMS, address, null);
assertTrue(resp == null);
// TODO: find a reliable ip that can be mapped.
assertNull(event.getAttribute("connection_type"));
GenericData.get().validate(properties.getSchema(), properties);
}
项目:divconq
文件:DownloadHandler.java
public void start(final HyperSession parent, WritableByteChannel dest, String chanid, Map<String, Cookie> cookies, long size, long offset, final OperationCallback callback) {
this.dest = dest;
this.cookies = cookies;
this.callback = callback;
this.size = size;
this.sent = offset;
this.src = this.allocateChannel(parent, callback);
if (this.callback.hasErrors()) {
callback.complete();
return;
}
// send a request to get things going
HttpRequest req = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/download/" + chanid);
req.headers().set(Names.HOST, parent.getInfo().getHost());
req.headers().set(Names.USER_AGENT, "DivConq HyperAPI Client 1.0");
req.headers().set(Names.CONNECTION, HttpHeaders.Values.CLOSE);
req.headers().set(Names.COOKIE, ClientCookieEncoder.STRICT.encode(this.cookies.values()));
// send request
this.src.writeAndFlush(req);
}
项目:redant
文件:CookieHelper.java
/**
* 获取HttpRequest中的Cookies
* @param request
* @return
*/
public static Set<Cookie> getCookies(HttpRequest request){
Set<Cookie> cookies;
String value = request.headers().get(HttpHeaderNames.COOKIE);
if (value == null) {
cookies = Collections.emptySet();
} else {
cookies = ServerCookieDecoder.STRICT.decode(value);
}
return cookies;
}
项目:redant
文件:CookieHelper.java
/**
* 设置所有的Cookie
* @param request
* @param response
*/
public static void setCookies(HttpRequest request,HttpResponse response){
Set<Cookie> cookies = getCookies(request);
if (!cookies.isEmpty()) {
for (Cookie cookie : cookies) {
setCookie(response,cookie);
}
}
}
项目:redant
文件:CookieHelper.java
/**
* 添加一个Cookie
* @param response response
* @param name cookie名字
* @param value cookie值
* @param domain cookie所在域
* @param maxAge cookie生命周期 以秒为单位
*/
public static void addCookie(HttpResponse response,String name,String value,String domain,long maxAge){
Cookie cookie = new DefaultCookie(name,value);
cookie.setPath("/");
if(domain!=null && domain.trim().length()>0) {
cookie.setDomain(domain);
}
if(maxAge>0){
cookie.setMaxAge(maxAge);
}
setCookie(response,cookie);
}
项目:redant
文件:CookieHelper.java
/**
* 将cookie封装到Map里面
* @param request HttpRequest
* @return
*/
public static Map<String,Cookie> getCookieMap(HttpRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Set<Cookie> cookies = getCookies(request);
if(null!=cookies && !cookies.isEmpty()){
for(Cookie cookie : cookies){
cookieMap.put(cookie.name(), cookie);
}
}
return cookieMap;
}
项目:redant
文件:CookieHelper.java
/**
* 删除一个Cookie
* @param request
* @param response
* @param name
* @return
*/
public static boolean deleteCookie(HttpRequest request,HttpResponse response,String name) {
Cookie cookie = getCookie(request,name);
if(cookie!=null){
cookie.setMaxAge(0);
cookie.setPath("/");
setCookie(response,cookie);
return true;
}
return false;
}
项目:redant
文件:DefaultCookieRender.java
@Override
public void setCookie(Cookie cookie) {
if(response==null){
response = response();
}
CookieHelper.setCookie(response,cookie);
}
项目:tasfe-framework
文件:Utils.java
public static final Collection<Cookie> getCookies(String name, HttpRequest request) {
String cookieString = request.headers().get(COOKIE);
if (cookieString != null) {
List<Cookie> foundCookie = new ArrayList<Cookie>();
// 不验证name 和 value
Set<Cookie> cookies = ServerCookieDecoder.LAX.decode(cookieString);
for (Cookie cookie : cookies) {
if (cookie.name().equals(name))
foundCookie.add(cookie);
}
return foundCookie;
}
return null;
}
项目:tasfe-framework
文件:Utils.java
public static final Collection<Cookie> getCookies(String name, HttpResponse response) {
String cookieString = response.headers().get(COOKIE);
if (cookieString != null) {
List<Cookie> foundCookie = new ArrayList<Cookie>();
// 不验证name 和 value
Set<Cookie> cookies = ServerCookieDecoder.LAX.decode(cookieString);
for (Cookie cookie : cookies) {
if (cookie.name().equals(name))
foundCookie.add(cookie);
}
return foundCookie;
}
return null;
}
项目:qonduit
文件:BasicAuthLoginRequestHandlerTest.java
@Test
public void testBasicAuthentication() throws Exception {
Configuration config = TestConfiguration.createMinimalConfigurationForTest();
BasicAuthLogin auth = new BasicAuthLogin();
auth.setUsername("test");
auth.setPassword("test1");
DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/login");
request.content().writeBytes(JsonSerializer.getObjectMapper().writeValueAsBytes(auth));
TestHttpQueryDecoder decoder = new TestHttpQueryDecoder(config);
decoder.decode(null, request, results);
Assert.assertEquals(1, results.size());
Object result = results.iterator().next();
Assert.assertEquals(BasicAuthLoginRequest.class, result.getClass());
BasicAuthLoginRequestHandler handler = new BasicAuthLoginRequestHandler(config);
CaptureChannelHandlerContext ctx = new CaptureChannelHandlerContext();
handler.channelRead(ctx, result);
Assert.assertNotNull(ctx.msg);
Assert.assertTrue(ctx.msg instanceof DefaultFullHttpResponse);
DefaultFullHttpResponse response = (DefaultFullHttpResponse) ctx.msg;
Assert.assertEquals(HttpResponseStatus.OK, response.getStatus());
Assert.assertTrue(response.headers().contains(Names.CONTENT_TYPE));
Assert.assertEquals(Constants.JSON_TYPE, response.headers().get(Names.CONTENT_TYPE));
Assert.assertTrue(response.headers().contains(Names.SET_COOKIE));
Cookie c = ClientCookieDecoder.STRICT.decode(response.headers().get(Names.SET_COOKIE));
Assert.assertEquals(TestConfiguration.HTTP_ADDRESS_DEFAULT, c.domain());
Assert.assertEquals(86400, c.maxAge());
Assert.assertTrue(c.isHttpOnly());
Assert.assertTrue(c.isSecure());
Assert.assertEquals(Constants.COOKIE_NAME, c.name());
UUID.fromString(c.value());
}
项目:analytics-with-rfx
文件:BaseHttpLogHandler.java
public static Cookie createCookie(String name, String value, String domain,
String path) {
Cookie cookie = new DefaultCookie(name, value);
cookie.setDomain(domain);
cookie.setPath(path);
return cookie;
}
项目:vaadin-vertx-samples
文件:WebsocketSessionHandler.java
@Override
public void handle(ServerWebSocket serverWebSocket) {
String basePath = Optional.ofNullable(mountPoint)
.map(m -> m.substring(0, m.lastIndexOf('/')) )
.orElse("");
if (!serverWebSocket.path().startsWith(basePath + "/PUSH")) {
serverWebSocket.reject();
}
String cookieHeader = serverWebSocket.headers().get(COOKIE);
if (cookieHeader != null) {
Optional<String> sessionId = ServerCookieDecoder.STRICT.decode(cookieHeader).stream()
.filter(cookie -> cookieName.equals(cookie.name()))
.findFirst().map(Cookie::value);
if (sessionId.isPresent()) {
sessionId.ifPresent(sid -> sessionStore.get(sid, event -> {
Session session = null;
if (event.succeeded()) {
session = event.result();
}
next.accept(serverWebSocket, session);
}
));
return;
}
}
next.accept(serverWebSocket, null);
}
项目:timely
文件:BasicAuthLoginRequestHandlerTest.java
@Test
public void testBasicAuthentication() throws Exception {
Configuration config = TestConfiguration.createMinimalConfigurationForTest();
// @formatter:off
String form =
"{\n" +
" \"username\": \"test\",\n" +
" \"password\": \"test1\"\n" +
"}";
// @formatter:on
DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/login");
request.content().writeBytes(form.getBytes());
TestHttpQueryDecoder decoder = new TestHttpQueryDecoder(config);
decoder.decode(null, request, results);
Assert.assertEquals(1, results.size());
Object result = results.iterator().next();
Assert.assertEquals(BasicAuthLoginRequest.class, result.getClass());
BasicAuthLoginRequestHandler handler = new BasicAuthLoginRequestHandler(config);
CaptureChannelHandlerContext ctx = new CaptureChannelHandlerContext();
handler.channelRead(ctx, result);
Assert.assertNotNull(ctx.msg);
Assert.assertTrue(ctx.msg instanceof DefaultFullHttpResponse);
DefaultFullHttpResponse response = (DefaultFullHttpResponse) ctx.msg;
Assert.assertEquals(HttpResponseStatus.OK, response.getStatus());
Assert.assertTrue(response.headers().contains(Names.CONTENT_TYPE));
Assert.assertEquals(Constants.JSON_TYPE, response.headers().get(Names.CONTENT_TYPE));
Assert.assertTrue(response.headers().contains(Names.SET_COOKIE));
Cookie c = ClientCookieDecoder.STRICT.decode(response.headers().get(Names.SET_COOKIE));
Assert.assertEquals(TestConfiguration.TIMELY_HTTP_ADDRESS_DEFAULT, c.domain());
Assert.assertEquals(86400, c.maxAge());
Assert.assertTrue(c.isHttpOnly());
Assert.assertTrue(c.isSecure());
Assert.assertEquals(Constants.COOKIE_NAME, c.name());
UUID.fromString(c.value());
}
项目:timely
文件:OneWaySSLBasicAuthAccessIT.java
protected HttpsURLConnection getUrlConnection(String username, String password, URL url) throws Exception {
HttpsURLConnection.setDefaultSSLSocketFactory(getSSLSocketFactory());
URL loginURL = new URL(url.getProtocol() + "://" + url.getHost() + ":" + url.getPort() + "/login");
HttpsURLConnection con = (HttpsURLConnection) loginURL.openConnection();
con.setHostnameVerifier((host, session) -> true);
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json");
BasicAuthLoginRequest request = new BasicAuthLoginRequest();
request.setUsername(username);
request.setPassword(password);
String requestJSON = JsonUtil.getObjectMapper().writeValueAsString(request);
con.setRequestProperty("Content-Length", String.valueOf(requestJSON.length()));
OutputStream wr = con.getOutputStream();
wr.write(requestJSON.getBytes(UTF_8));
int responseCode = con.getResponseCode();
if (401 == responseCode) {
throw new UnauthorizedUserException();
}
Assert.assertEquals(200, responseCode);
List<String> cookies = con.getHeaderFields().get(Names.SET_COOKIE);
Assert.assertEquals(1, cookies.size());
Cookie sessionCookie = ClientCookieDecoder.STRICT.decode(cookies.get(0));
Assert.assertEquals(Constants.COOKIE_NAME, sessionCookie.name());
con = (HttpsURLConnection) url.openConnection();
con.setRequestProperty(Names.COOKIE, sessionCookie.name() + "=" + sessionCookie.value());
con.setHostnameVerifier((host, session) -> true);
return con;
}
项目:riposte
文件:ChunkedResponseInfo.java
/**
* The "populate everything" constructor. It's recommended that you use the {@link ChunkedResponseInfoBuilder}
* instead.
*/
public ChunkedResponseInfo(Integer httpStatusCode, HttpHeaders headers,
String desiredContentWriterMimeType,
Charset desiredContentWriterEncoding,
Set<Cookie> cookies,
boolean preventCompressedOutput) {
super(httpStatusCode, headers, desiredContentWriterMimeType, desiredContentWriterEncoding, cookies,
preventCompressedOutput);
}
项目:riposte
文件:FullResponseInfo.java
/**
* The "populate everything" constructor. It's recommended that you use the {@link FullResponseInfoBuilder} instead.
*/
public FullResponseInfo(T contentForFullResponse,
Integer httpStatusCode,
HttpHeaders headers,
String desiredContentWriterMimeType,
Charset desiredContentWriterEncoding,
Set<Cookie> cookies,
boolean preventCompressedOutput) {
super(httpStatusCode, headers, desiredContentWriterMimeType, desiredContentWriterEncoding, cookies,
preventCompressedOutput);
this.contentForFullResponse = contentForFullResponse;
}