Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
vlkb-soda
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ViaLactea
vlkb-soda
Commits
c5fd2eef
Commit
c5fd2eef
authored
1 year ago
by
Robert Butora
Browse files
Options
Downloads
Patches
Plain Diff
cosmetic (removes obsolete NeaLogEntry and MonitorFilter)
parent
b9286b15
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
data-access/servlet/src/main/java/webapi/MonitorFilter.java
+0
-264
0 additions, 264 deletions
data-access/servlet/src/main/java/webapi/MonitorFilter.java
data-access/servlet/src/main/java/webapi/NeaLogEntry.java
+0
-81
0 additions, 81 deletions
data-access/servlet/src/main/java/webapi/NeaLogEntry.java
with
0 additions
and
345 deletions
data-access/servlet/src/main/java/webapi/MonitorFilter.java
deleted
100644 → 0
+
0
−
264
View file @
b9286b15
//import it.inaf.ia2.aa.data.User;
import
java.io.IOException
;
import
java.io.BufferedReader
;
import
java.io.InputStreamReader
;
import
java.util.*
;
// ArrayList<String> Collection<>
import
java.util.logging.Logger
;
import
javax.servlet.Filter
;
import
javax.servlet.FilterChain
;
import
javax.servlet.FilterConfig
;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.Part
;
import
javax.servlet.http.HttpServletRequestWrapper
;
import
java.security.Principal
;
import
vo.parameter.*
;
@javax
.
servlet
.
annotation
.
MultipartConfig
public
class
MonitorFilter
implements
Filter
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
MonitorFilter
.
class
.
getName
());
private
static
final
Settings
settings
=
Settings
.
getInstance
();
@Override
public
void
init
(
FilterConfig
fc
)
throws
ServletException
{}
@Override
public
void
destroy
()
{}
@Override
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
LOGGER
.
info
(
"ENTER doFilter ===================================="
);
HttpServletRequest
req
=
(
HttpServletRequest
)
request
;
HttpServletResponse
resp
=
(
HttpServletResponse
)
response
;
boolean
readBody
=
false
;
//logServletEnv(req, resp, readBody);
String
servletPath
=
req
.
getServletPath
();
List
<
String
>
pubdidList
=
new
ArrayList
<
String
>();
if
(
servletPath
.
equals
(
"/vlkb_cutout"
))
{
String
pubdid
=
req
.
getParameter
(
"ID"
);
if
(
pubdid
==
null
)
pubdid
=
req
.
getParameter
(
"pubdid"
);
if
(
pubdid
!=
null
)
pubdidList
.
add
(
pubdid
);
LOGGER
.
info
(
"PARAM cut id: "
+
pubdid
);
}
else
if
(
servletPath
.
equals
(
"/uws_merge"
)
||
servletPath
.
equals
(
"/vlkb_merge"
))
{
String
pubdids
=
req
.
getParameter
(
"pubdid"
);
LOGGER
.
info
(
"PARAM mrg pubdid: "
+
pubdids
);
String
[]
pubdidArr
=
pubdids
.
split
(
";"
);
for
(
String
pubdid
:
pubdidArr
)
if
(
pubdid
.
length
()
>
0
)
pubdidList
.
add
(
pubdid
);
}
else
if
(
servletPath
.
equals
(
"/uws_mcutout"
))
{
final
String
METHOD
=
req
.
getMethod
();
if
(
METHOD
.
equals
(
"POST"
))
{
try
{
Part
part
=
req
.
getPart
(
"mcutout"
);
if
(
part
==
null
)
{
LOGGER
.
info
(
"part 'mcutout' is null"
);
}
else
{
String
body
=
getValue
(
part
);
LOGGER
.
info
(
"PARAM mct B[mcutout]: "
+
body
);
String
[]
pubdidArr
=
JdlMCutout
.
pubdidsFromReqJson
(
body
);
for
(
String
pubdid
:
pubdidArr
)
if
(
pubdid
.
length
()
>
0
)
pubdidList
.
add
(
pubdid
);
}
}
catch
(
ServletException
ex
)
{
LOGGER
.
info
(
"getPart(mcutout) ServeltException: "
+
ex
.
getMessage
());
}
catch
(
IOException
ex
)
{
LOGGER
.
info
(
"getPart(mcutout) IOException: "
+
ex
.
getMessage
());
}
catch
(
Exception
ex
)
{
LOGGER
.
info
(
"getPart(mcutout) Exception: "
+
ex
.
getMessage
());
}
}
}
else
{
LOGGER
.
info
(
"ServletPath not used: "
+
servletPath
);
LOGGER
.
info
(
"CALL chain.doFilter"
);
chain
.
doFilter
(
request
,
response
);
LOGGER
.
info
(
"RETURN from chain.doFilter"
);
LOGGER
.
info
(
"EXIT doFilter *************************************"
);
return
;
}
int
i
=
0
;
for
(
String
pubdid
:
pubdidList
)
LOGGER
.
info
(
"pubdid["
+
i
++
+
"]:"
+
pubdid
);
LOGGER
.
info
(
"AuthZ start --------------------------------------"
);
AuthPolicy
auth
=
null
;
try
{
auth
=
new
AuthPolicy
(
req
.
getUserPrincipal
());
}
catch
(
IllegalArgumentException
ex
)
{
throw
new
IllegalArgumentException
(
"Authorization : UserPrincipal is not of expected type"
);
}
String
[]
pubdidArr
=
pubdidList
.
toArray
(
new
String
[
pubdidList
.
size
()]);
String
[]
authorized_pubdids
;
LOGGER
.
info
(
"Action cutout: for filterrAuthorized."
);
authorized_pubdids
=
auth
.
filterAuthorized
(
pubdidArr
,
settings
.
dbConn
.
uri
(),
settings
.
dbConn
.
userName
(),
settings
.
dbConn
.
password
());
LOGGER
.
info
(
"AuthZ end ---------------------------------------"
);
i
=
0
;
for
(
String
pubdid
:
authorized_pubdids
)
LOGGER
.
info
(
"authZpubdid["
+
i
++
+
"]:"
+
pubdid
);
if
(
servletPath
.
equals
(
"/vlkb_cutout"
)
&&
(
authorized_pubdids
.
length
<
1
))
{
LOGGER
.
info
(
"FORBIDDEN Authorization error"
);
resp
.
setContentType
(
"text/plain"
);
resp
.
sendError
(
HttpServletResponse
.
SC_FORBIDDEN
,
"Forbidden"
);
}
else
{
LOGGER
.
info
(
"CALL chain.doFilter"
);
chain
.
doFilter
(
request
,
response
);
LOGGER
.
info
(
"RETURN from chain.doFilter"
);
}
LOGGER
.
info
(
"EXIT doFilter *************************************"
);
}
private
static
String
getValue
(
Part
part
)
throws
IOException
{
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
part
.
getInputStream
(),
"UTF-8"
));
StringBuilder
value
=
new
StringBuilder
();
char
[]
buffer
=
new
char
[
1024
];
for
(
int
length
=
0
;
(
length
=
reader
.
read
(
buffer
))
>
0
;)
{
value
.
append
(
buffer
,
0
,
length
);
}
return
value
.
toString
();
}
private
void
logServletEnv
(
HttpServletRequest
req
,
HttpServletResponse
resp
,
boolean
readBody
)
{
Principal
princ
=
req
.
getUserPrincipal
();
LOGGER
.
info
(
"getUserPrincipal available : "
+
((
princ
==
null
)
?
"NO"
:
"YES"
));
String
H_AUTH
=
req
.
getHeader
(
"Authorization"
);
if
(
H_AUTH
==
null
)
LOGGER
.
info
(
"getHeader[Authorization][-] : null"
);
else
LOGGER
.
info
(
"getHeader[Authorization]["
+
H_AUTH
.
length
()
+
"] :"
+
H_AUTH
.
substring
(
0
,
10
)
+
" ..."
);
/* Servlet.getServletConfig(), ServletConfig.getServletContext() */
/* ServeltContext.getContextPath() ServletContext.getRealPath() if war-name differs from ContextPath */
LOGGER
.
info
(
"getContextPath : "
+
req
.
getContextPath
());
// usually the war-file name
LOGGER
.
info
(
"getServletPath : "
+
req
.
getServletPath
());
LOGGER
.
info
(
"getPathInfo : "
+
req
.
getPathInfo
());
// portion after context and before query-string
LOGGER
.
info
(
"getPathTranslated : "
+
req
.
getPathTranslated
());
// extra path translated to local path
LOGGER
.
info
(
"getRequestURI : "
+
req
.
getRequestURI
());
LOGGER
.
info
(
"getRequestURL : "
+
req
.
getRequestURL
().
toString
());
LOGGER
.
info
(
"getQueryString : "
+
req
.
getQueryString
());
LOGGER
.
info
(
"getContentType : "
+
req
.
getContentType
());
String
METHOD
=
req
.
getMethod
();
LOGGER
.
info
(
"getMethod : "
+
METHOD
);
Map
<
String
,
String
[]>
map
=
req
.
getParameterMap
();
for
(
Map
.
Entry
<
String
,
String
[]>
entry
:
map
.
entrySet
())
{
String
[]
strArr
=
entry
.
getValue
();
for
(
String
str
:
strArr
)
LOGGER
.
info
(
"PARAM: "
+
entry
.
getKey
()
+
":"
+
str
);
}
/* MultipartConfig.maxFileSize(), MultipartConfig.maxRequestSize() */
if
(
METHOD
.
equals
(
"POST"
))
{
try
{
/* for getParts() call to work in Tomcat the following config in context.xml is needed:
* <Context allowCasualMultipartParsing="true"> ...
*/
Collection
<
Part
>
parts
=
req
.
getParts
();
if
(
parts
==
null
)
{
LOGGER
.
info
(
"parts is null"
);
}
else
{
for
(
Part
part
:
parts
)
{
LOGGER
.
info
(
"part.getName : "
+
part
.
getName
());
LOGGER
.
info
(
"part.getSize : "
+
part
.
getSize
());
LOGGER
.
info
(
"part.getHeader : "
+
part
.
getHeader
(
part
.
getName
()));
LOGGER
.
info
(
"part.getContentType : "
+
part
.
getContentType
());
LOGGER
.
info
(
"part.getSubmittedFileName : "
+
part
.
getSubmittedFileName
());
if
(
readBody
&&
part
.
getName
().
equals
(
"mcutout"
))
{
String
body
=
getValue
(
part
);
LOGGER
.
info
(
"BODY: "
+
body
);
}
}
}
}
catch
(
ServletException
ex
)
{
LOGGER
.
info
(
"getParts ServeltException: "
+
ex
.
getMessage
());
}
catch
(
IOException
ex
)
{
LOGGER
.
info
(
"getParts IOException: "
+
ex
.
getMessage
());
}
catch
(
Exception
ex
)
{
LOGGER
.
info
(
"getParts Exception: "
+
ex
.
getMessage
());
}
}
}
}
This diff is collapsed.
Click to expand it.
data-access/servlet/src/main/java/webapi/NeaLogEntry.java
deleted
100644 → 0
+
0
−
81
View file @
b9286b15
import
org.json.simple.JSONObject
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.TimeZone
;
public
class
NeaLogEntry
{
String
serviceId
=
"vlkb"
;
String
action
;
String
defaultLevel
;
NeaLogEntry
(
String
argAction
,
String
argDefLevel
)
{
action
=
argAction
;
defaultLevel
=
argDefLevel
;
}
String
timeNowISO8601
()
{
TimeZone
tz
=
TimeZone
.
getTimeZone
(
"UTC"
);
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
);
df
.
setTimeZone
(
tz
);
String
timeAsISO8601
=
df
.
format
(
new
Date
());
return
timeAsISO8601
;
}
JSONObject
generateCommonInfo
(
String
timestamp
,
String
UserName
,
String
resource
)
{
JSONObject
objCommon
=
new
JSONObject
();
objCommon
.
put
(
"timestamp"
,
timestamp
);
objCommon
.
put
(
"serviceid"
,
serviceId
);
objCommon
.
put
(
"level"
,
defaultLevel
);
objCommon
.
put
(
"resource"
,
resource
);
objCommon
.
put
(
"action"
,
action
);
objCommon
.
put
(
"userid"
,
UserName
);
return
objCommon
;
}
String
generateLoggingInfo
(
String
timestamp
,
String
UserName
,
String
resource
,
String
requestUrl
,
String
clientIp
)
{
JSONObject
objLogging
=
generateCommonInfo
(
timestamp
,
UserName
,
resource
);
objLogging
.
put
(
"url"
,
requestUrl
);
objLogging
.
put
(
"client_ip"
,
clientIp
);
return
objLogging
.
toString
();
}
String
generateAccountingInfo
(
String
timestamp
,
String
UserName
,
String
resource
,
String
measure
,
double
value
)
{
JSONObject
objAccounting
=
generateCommonInfo
(
timestamp
,
UserName
,
resource
);
objAccounting
.
put
(
"value"
,
value
);
objAccounting
.
put
(
"measure"
,
measure
);
return
objAccounting
.
toString
();
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment