@@ -3,24 +3,44 @@ const cds = require("@sap/cds");
33/* Emit a "Received1" event upon receiving a READ request on its entity. */
44module . exports = class Service1 extends cds . ApplicationService {
55 init ( ) {
6- this . on ( "send1 " , async ( req ) => {
6+ this . on ( "send11 " , async ( req ) => {
77 const { messageToPass } = req . data ; // UNSAFE: Taint source, Exposed service
88 const Service2 = await cds . connect . to ( "service-2" ) ;
99 Service2 . send ( "send2" , { messageToPass } ) ;
1010 } ) ;
1111
12- this . on ( "send2" , async ( req ) => {
12+ this . on ( "send12" , async ( req ) => {
13+ const reqData = getReqData ( req ) ;
14+ const { messageToPass } = reqData ;
15+ const Service2 = await cds . connect . to ( "service-2" ) ;
16+ Service2 . send ( "send2" , { messageToPass } ) ;
17+ } ) ;
18+
19+ this . on ( "send21" , async ( req ) => {
1320 const [ messageToPass ] = req . params ; // UNSAFE: Taint source, Exposed service
1421 const Service2 = await cds . connect . to ( "service-2" ) ;
1522 Service2 . send ( "send2" , { messageToPass } ) ;
1623 } ) ;
1724
18- this . on ( "send3" , async ( req ) => {
25+ this . on ( "send22" , async ( req ) => {
26+ const [ messageToPass ] = getReqParams ( req ) ; // UNSAFE: Taint source, Exposed service
27+ const Service2 = await cds . connect . to ( "service-2" ) ;
28+ Service2 . send ( "send2" , { messageToPass } ) ;
29+ } ) ;
30+
31+ this . on ( "send31" , async ( req ) => {
1932 const messageToPass = req . headers [ "user-agent" ] ; // UNSAFE: Taint source, Exposed service
2033 const Service2 = await cds . connect . to ( "service-2" ) ;
2134 Service2 . send ( "send2" , { messageToPass } ) ;
2235 } ) ;
2336
37+ this . on ( "send32" , async ( req ) => {
38+ const reqHeaders = getReqHeaders ( req ) ;
39+ const messageToPass = reqHeaders [ "user-agent" ] ; // UNSAFE: Taint source, Exposed service
40+ const Service2 = await cds . connect . to ( "service-2" ) ;
41+ Service2 . send ( "send2" , { messageToPass } ) ;
42+ } ) ;
43+
2444 this . on ( "send4" , async ( req ) => {
2545 const messageToPass1 = req . http . req . query . someProp ; // UNSAFE: Taint source, Exposed service
2646 const messageToPass2 = req . http . req . body . someProp ; // UNSAFE: Taint source, Exposed service
@@ -37,18 +57,30 @@ module.exports = class Service1 extends cds.ApplicationService {
3757 Service2 . send ( "send2" , { messageToPass1 } ) ;
3858 } ) ;
3959
40- this . on ( "send5 " , async ( req ) => {
60+ this . on ( "send51 " , async ( req ) => {
4161 const messageToPass = req . id ; // UNSAFE: Taint source, Exposed service
4262 const Service2 = await cds . connect . to ( "service-2" ) ;
4363 Service2 . send ( "send2" , { messageToPass } ) ;
4464 } ) ;
4565
46- this . on ( "send6" , async ( req ) => {
66+ this . on ( "send52" , async ( req ) => {
67+ const messageToPass = getReqId ( req ) ; // UNSAFE: Taint source, Exposed service
68+ const Service2 = await cds . connect . to ( "service-2" ) ;
69+ Service2 . send ( "send2" , { messageToPass } ) ;
70+ } ) ;
71+
72+ this . on ( "send61" , async ( req ) => {
4773 const messageToPass = req . _queryOptions ; // UNSAFE: Taint source, Exposed service
4874 const Service2 = await cds . connect . to ( "service-2" ) ;
4975 Service2 . send ( "send2" , { messageToPass } ) ;
5076 } ) ;
5177
78+ this . on ( "send62" , async ( req ) => {
79+ const messageToPass = getReqQueryOptions ( req ) ; // UNSAFE: Taint source, Exposed service
80+ const Service2 = await cds . connect . to ( "service-2" ) ;
81+ Service2 . send ( "send2" , { messageToPass } ) ;
82+ } ) ;
83+
5284 this . on ( "send7" , async ( req ) => {
5385 const messageToPass = req . locale ; // SAFE: Not a taint source, Exposed service
5486 const Service2 = await cds . connect . to ( "service-2" ) ;
@@ -74,3 +106,23 @@ module.exports = class Service1 extends cds.ApplicationService {
74106 } ) ;
75107 }
76108} ;
109+
110+ function getReqData ( request ) {
111+ return request . data ; // UNSAFE: Taint source, Exposed service
112+ }
113+
114+ function getReqParams ( request ) {
115+ return request . params ; // UNSAFE: Taint source, Exposed service
116+ }
117+
118+ function getReqHeaders ( request ) {
119+ return request . headers ; // UNSAFE: Taint source, Exposed service
120+ }
121+
122+ function getReqId ( request ) {
123+ return request . id ; // UNSAFE: Taint source, Exposed service
124+ }
125+
126+ function getReqQueryOptions ( request ) {
127+ return request . _queryOptions ; // UNSAFE: Taint source, Exposed service
128+ }
0 commit comments