Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
79ad03b5
Commit
79ad03b5
authored
Mar 16, 2018
by
Phillip Webb
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.5.x'
parents
620208a8
23892e33
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
58 additions
and
7 deletions
+58
-7
BasicErrorController.java
...autoconfigure/web/servlet/error/BasicErrorController.java
+23
-6
BasicErrorControllerIntegrationTests.java
...b/servlet/error/BasicErrorControllerIntegrationTests.java
+13
-0
Handler.java
...ain/java/org/springframework/boot/loader/jar/Handler.java
+2
-1
JarFileTests.java
...ava/org/springframework/boot/loader/jar/JarFileTests.java
+20
-0
No files found.
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorController.java
View file @
79ad03b5
...
...
@@ -33,7 +33,6 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.stereotype.Controller
;
import
org.springframework.util.Assert
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.servlet.ModelAndView
;
/**
...
...
@@ -83,6 +82,16 @@ public class BasicErrorController extends AbstractErrorController {
return
this
.
errorProperties
.
getPath
();
}
@RequestMapping
(
produces
=
{
"application/xml"
,
"text/xml"
,
"application/json"
,
"application/*+xml"
,
"application/*+json"
})
public
ResponseEntity
<
Map
<
String
,
Object
>>
errorStructured
(
HttpServletRequest
request
)
{
Map
<
String
,
Object
>
body
=
getErrorAttributes
(
request
,
isIncludeStackTrace
(
request
,
MediaType
.
ALL
));
HttpStatus
status
=
getStatus
(
request
);
return
new
ResponseEntity
<
Map
<
String
,
Object
>>(
body
,
status
);
}
@RequestMapping
(
produces
=
"text/html"
)
public
ModelAndView
errorHtml
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
...
...
@@ -95,12 +104,20 @@ public class BasicErrorController extends AbstractErrorController {
}
@RequestMapping
@ResponseBody
public
ResponseEntity
<
Map
<
String
,
Object
>>
error
(
HttpServletRequest
request
)
{
Map
<
String
,
Object
>
body
=
getErrorAttributes
(
request
,
isIncludeStackTrace
(
request
,
MediaType
.
ALL
));
public
ResponseEntity
<
String
>
errorText
(
HttpServletRequest
request
)
{
Map
<
String
,
Object
>
attributes
=
getErrorAttributes
(
request
,
isIncludeStackTrace
(
request
,
MediaType
.
TEXT_PLAIN
));
int
padding
=
0
;
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
attributes
.
entrySet
())
{
padding
=
Math
.
max
(
padding
,
entry
.
getKey
().
length
());
}
StringBuffer
body
=
new
StringBuffer
();
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
attributes
.
entrySet
())
{
body
.
append
(
String
.
format
(
"%-"
+
padding
+
"s : %s%n"
,
entry
.
getKey
(),
entry
.
getValue
()));
}
HttpStatus
status
=
getStatus
(
request
);
return
new
ResponseEntity
<>(
body
,
status
);
return
new
ResponseEntity
<>(
body
.
toString
()
,
status
);
}
/**
...
...
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorControllerIntegrationTests.java
View file @
79ad03b5
...
...
@@ -169,6 +169,7 @@ public class BasicErrorControllerIntegrationTests {
load
(
"--server.error.include-exception=true"
);
RequestEntity
request
=
RequestEntity
.
post
(
URI
.
create
(
createUrl
(
"/bodyValidation"
)))
.
accept
(
MediaType
.
APPLICATION_JSON
)
.
contentType
(
MediaType
.
APPLICATION_JSON
).
body
(
"{}"
);
ResponseEntity
<
Map
>
entity
=
new
TestRestTemplate
().
exchange
(
request
,
Map
.
class
);
String
resp
=
entity
.
getBody
().
toString
();
...
...
@@ -189,6 +190,18 @@ public class BasicErrorControllerIntegrationTests {
assertThat
(
resp
).
doesNotContain
(
"org.springframework.validation.BindException"
);
}
@Test
public
void
testRequestBodyValidationForText
()
{
load
();
RequestEntity
<
Void
>
request
=
RequestEntity
.
post
(
URI
.
create
(
createUrl
(
"/"
)))
.
accept
(
MediaType
.
TEXT_PLAIN
).
build
();
ResponseEntity
<
String
>
entity
=
new
TestRestTemplate
().
exchange
(
request
,
String
.
class
);
String
resp
=
entity
.
getBody
().
toString
();
assertThat
(
resp
).
contains
(
"status"
);
assertThat
(
resp
).
contains
(
"error"
);
}
@Test
public
void
testConventionTemplateMapping
()
{
load
();
...
...
spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java
View file @
79ad03b5
...
...
@@ -92,7 +92,8 @@ public class Handler extends URLStreamHandler {
@Override
protected
URLConnection
openConnection
(
URL
url
)
throws
IOException
{
if
(
this
.
jarFile
!=
null
)
{
if
(
this
.
jarFile
!=
null
&&
url
.
toString
().
startsWith
(
this
.
jarFile
.
getUrl
().
toString
()))
{
return
JarURLConnection
.
get
(
url
,
this
.
jarFile
);
}
try
{
...
...
spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/jar/JarFileTests.java
View file @
79ad03b5
...
...
@@ -481,4 +481,24 @@ public class JarFileTests {
assertThat
(
temp
.
delete
()).
isTrue
();
}
@Test
public
void
createUrlFromStringWithContextWhenNotFound
()
throws
Exception
{
// gh-12483
JarURLConnection
.
setUseFastExceptions
(
true
);
try
{
JarFile
.
registerUrlProtocolHandler
();
JarFile
nested
=
this
.
jarFile
.
getNestedJarFile
(
this
.
jarFile
.
getEntry
(
"nested.jar"
));
URL
context
=
nested
.
getUrl
();
new
URL
(
context
,
"jar:"
+
this
.
rootJarFile
.
toURI
()
+
"!/nested.jar!/3.dat"
)
.
openConnection
().
getInputStream
().
close
();
this
.
thrown
.
expect
(
FileNotFoundException
.
class
);
new
URL
(
context
,
"jar:"
+
this
.
rootJarFile
.
toURI
()
+
"!/no.dat"
)
.
openConnection
().
getInputStream
().
close
();
}
finally
{
JarURLConnection
.
setUseFastExceptions
(
false
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment