@@ -380,4 +380,96 @@ module Http {
380380 /** Gets a node that is used in a check that is tested before this handler is run. */
381381 predicate guardedBy ( DataFlow:: Node check ) { super .guardedBy ( check ) }
382382 }
383+
384+ /** Provides a class for modeling new HTTP response cookie write APIs. */
385+ module CookieWrite {
386+ /**
387+ * A write of an HTTP Cookie to an HTTP response.
388+ *
389+ * Extend this class to model new APIs. If you want to refine existing API models,
390+ * extend `HTTP::CookieWrite` instead.
391+ */
392+ abstract class Range extends DataFlow:: Node {
393+ /** Gets the name of the cookie written. */
394+ abstract DataFlow:: Node getName ( ) ;
395+
396+ /** Gets the value of the cookie written. */
397+ abstract DataFlow:: Node getValue ( ) ;
398+
399+ /** Gets the `Secure` attribute of the cookie written. */
400+ abstract DataFlow:: Node getSecure ( ) ;
401+
402+ /** Gets the `HttpOnly` attribute of the cookie written. */
403+ abstract DataFlow:: Node getHttpOnly ( ) ;
404+ }
405+ }
406+
407+ /**
408+ * A write of an HTTP Cookie to an HTTP response.
409+ *
410+ * Extend this class to refine existing API models. If you want to model new APIs,
411+ * extend `HTTP::CookieWrite::Range` instead.
412+ */
413+ class CookieWrite extends DataFlow:: Node instanceof CookieWrite:: Range {
414+ /** Gets the name of the cookie written. */
415+ DataFlow:: Node getName ( ) { result = super .getName ( ) }
416+
417+ /** Gets the value of the cookie written. */
418+ DataFlow:: Node getValue ( ) { result = super .getValue ( ) }
419+
420+ /** Gets the `Secure` attribute of the cookie written. */
421+ DataFlow:: Node getSecure ( ) { result = super .getSecure ( ) }
422+
423+ /** Gets the `HttpOnly` attribute of the cookie written. */
424+ DataFlow:: Node getHttpOnly ( ) { result = super .getHttpOnly ( ) }
425+ }
426+
427+ /** Provides a class for modeling the new APIs for writes to options of an HTTP cookie. */
428+ module CookieOptionWrite {
429+ /**
430+ * A write to an option of an HTTP cookie object.
431+ *
432+ * Extend this class to model new APIs. If you want to refine existing API models,
433+ * extend `HTTP::CookieOptionWrite` instead.
434+ */
435+ abstract class Range extends DataFlow:: Node {
436+ /** Gets the node representing the cookie object for the options being set. */
437+ abstract DataFlow:: Node getCookieOutput ( ) ;
438+
439+ /** Gets the name of the cookie represented, if any. */
440+ abstract DataFlow:: Node getName ( ) ;
441+
442+ /** Gets the value of the cookie represented, if any. */
443+ abstract DataFlow:: Node getValue ( ) ;
444+
445+ /** Gets the `Secure` attribute of the cookie represented, if any. */
446+ abstract DataFlow:: Node getSecure ( ) ;
447+
448+ /** Gets the `HttpOnly` attribute of the cookie represented, if any. */
449+ abstract DataFlow:: Node getHttpOnly ( ) ;
450+ }
451+ }
452+
453+ /**
454+ * A write to an option of an HTTP cookie object.
455+ *
456+ * Extend this class to refine existing API models. If you want to model new APIs,
457+ * extend `HTTP::CookieOptionWrite::Range` instead.
458+ */
459+ class CookieOptionWrite extends DataFlow:: Node instanceof CookieOptionWrite:: Range {
460+ /** Gets the node representing the cookie object for the options being set. */
461+ DataFlow:: Node getCookieOutput ( ) { result = super .getCookieOutput ( ) }
462+
463+ /** Gets the name of the cookie represented, if any. */
464+ DataFlow:: Node getName ( ) { result = super .getName ( ) }
465+
466+ /** Gets the value of the cookie represented, if any. */
467+ DataFlow:: Node getValue ( ) { result = super .getValue ( ) }
468+
469+ /** Gets the `Secure` attribute of the cookie represented, if any. */
470+ DataFlow:: Node getSecure ( ) { result = super .getSecure ( ) }
471+
472+ /** Gets the `HttpOnly` attribute of the cookie represented, if any. */
473+ DataFlow:: Node getHttpOnly ( ) { result = super .getHttpOnly ( ) }
474+ }
383475}
0 commit comments