初始提交
diff --git a/tomcat-uid/webapps/examples/jsp/security/protected/error.jsp b/tomcat-uid/webapps/examples/jsp/security/protected/error.jsp
new file mode 100644
index 0000000..50e0ed5
--- /dev/null
+++ b/tomcat-uid/webapps/examples/jsp/security/protected/error.jsp
@@ -0,0 +1,25 @@
+<!--

+ Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You under the Apache License, Version 2.0

+  (the "License"); you may not use this file except in compliance with

+  the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing, software

+  distributed under the License is distributed on an "AS IS" BASIS,

+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  See the License for the specific language governing permissions and

+  limitations under the License.

+-->

+<html>

+<head>

+<title>Error Page For Examples</title>

+</head>

+<body bgcolor="white">

+Invalid username and/or password, please try

+<a href='<%= response.encodeURL("index.jsp") %>'>again</a>.

+</body>

+</html>

diff --git a/tomcat-uid/webapps/examples/jsp/security/protected/error.jsp.html b/tomcat-uid/webapps/examples/jsp/security/protected/error.jsp.html
new file mode 100644
index 0000000..d45fb6c
--- /dev/null
+++ b/tomcat-uid/webapps/examples/jsp/security/protected/error.jsp.html
@@ -0,0 +1,27 @@
+<html><body><pre>

+&lt;!--

+ Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You under the Apache License, Version 2.0

+  (the "License"); you may not use this file except in compliance with

+  the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing, software

+  distributed under the License is distributed on an "AS IS" BASIS,

+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  See the License for the specific language governing permissions and

+  limitations under the License.

+-->

+&lt;html>

+&lt;head>

+&lt;title>Error Page For Examples&lt;/title>

+&lt;/head>

+&lt;body bgcolor="white">

+Invalid username and/or password, please try

+&lt;a href='&lt;%= response.encodeURL("index.jsp") %>'>again&lt;/a>.

+&lt;/body>

+&lt;/html>

+</pre></body></html>

diff --git a/tomcat-uid/webapps/examples/jsp/security/protected/index.jsp b/tomcat-uid/webapps/examples/jsp/security/protected/index.jsp
new file mode 100644
index 0000000..bef9700
--- /dev/null
+++ b/tomcat-uid/webapps/examples/jsp/security/protected/index.jsp
@@ -0,0 +1,81 @@
+<!--

+ Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You under the Apache License, Version 2.0

+  (the "License"); you may not use this file except in compliance with

+  the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing, software

+  distributed under the License is distributed on an "AS IS" BASIS,

+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  See the License for the specific language governing permissions and

+  limitations under the License.

+-->

+<%

+  if (request.getParameter("logoff") != null) {

+    session.invalidate();

+    response.sendRedirect("index.jsp");

+    return;

+  }

+%>

+<html>

+<head>

+<title>Protected Page for Examples</title>

+</head>

+<body bgcolor="white">

+

+You are logged in as remote user

+<b><%= util.HTMLFilter.filter(request.getRemoteUser()) %></b>

+in session <b><%= session.getId() %></b><br><br>

+

+<%

+  if (request.getUserPrincipal() != null) {

+%>

+    Your user principal name is

+    <b><%= util.HTMLFilter.filter(request.getUserPrincipal().getName()) %></b>

+    <br><br>

+<%

+  } else {

+%>

+    No user principal could be identified.<br><br>

+<%

+  }

+%>

+

+<%

+  String role = request.getParameter("role");

+  if (role == null)

+    role = "";

+  if (role.length() > 0) {

+    if (request.isUserInRole(role)) {

+%>

+      You have been granted role

+      <b><%= util.HTMLFilter.filter(role) %></b><br><br>

+<%

+    } else {

+%>

+      You have <i>not</i> been granted role

+      <b><%= util.HTMLFilter.filter(role) %></b><br><br>

+<%

+    }

+  }

+%>

+

+To check whether your username has been granted a particular role,

+enter it here:

+<form method="GET" action='<%= response.encodeURL("index.jsp") %>'>

+<input type="text" name="role" value="<%= util.HTMLFilter.filter(role) %>">

+</form>

+<br><br>

+

+If you have configured this app for form-based authentication, you can log

+off by clicking

+<a href='<%= response.encodeURL("index.jsp?logoff=true") %>'>here</a>.

+This should cause you to be returned to the logon page after the redirect

+that is performed.

+

+</body>

+</html>

diff --git a/tomcat-uid/webapps/examples/jsp/security/protected/index.jsp.html b/tomcat-uid/webapps/examples/jsp/security/protected/index.jsp.html
new file mode 100644
index 0000000..b8a9a54
--- /dev/null
+++ b/tomcat-uid/webapps/examples/jsp/security/protected/index.jsp.html
@@ -0,0 +1,83 @@
+<html><body><pre>

+&lt;!--

+ Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You under the Apache License, Version 2.0

+  (the "License"); you may not use this file except in compliance with

+  the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing, software

+  distributed under the License is distributed on an "AS IS" BASIS,

+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  See the License for the specific language governing permissions and

+  limitations under the License.

+-->

+&lt;%

+  if (request.getParameter("logoff") != null) {

+    session.invalidate();

+    response.sendRedirect("index.jsp");

+    return;

+  }

+%>

+&lt;html>

+&lt;head>

+&lt;title>Protected Page for Examples&lt;/title>

+&lt;/head>

+&lt;body bgcolor="white">

+

+You are logged in as remote user

+&lt;b>&lt;%= util.HTMLFilter.filter(request.getRemoteUser()) %>&lt;/b>

+in session &lt;b>&lt;%= session.getId() %>&lt;/b>&lt;br>&lt;br>

+

+&lt;%

+  if (request.getUserPrincipal() != null) {

+%>

+    Your user principal name is

+    &lt;b>&lt;%= util.HTMLFilter.filter(request.getUserPrincipal().getName()) %>&lt;/b>

+    &lt;br>&lt;br>

+&lt;%

+  } else {

+%>

+    No user principal could be identified.&lt;br>&lt;br>

+&lt;%

+  }

+%>

+

+&lt;%

+  String role = request.getParameter("role");

+  if (role == null)

+    role = "";

+  if (role.length() > 0) {

+    if (request.isUserInRole(role)) {

+%>

+      You have been granted role

+      &lt;b>&lt;%= util.HTMLFilter.filter(role) %>&lt;/b>&lt;br>&lt;br>

+&lt;%

+    } else {

+%>

+      You have &lt;i>not&lt;/i> been granted role

+      &lt;b>&lt;%= util.HTMLFilter.filter(role) %>&lt;/b>&lt;br>&lt;br>

+&lt;%

+    }

+  }

+%>

+

+To check whether your username has been granted a particular role,

+enter it here:

+&lt;form method="GET" action='&lt;%= response.encodeURL("index.jsp") %>'>

+&lt;input type="text" name="role" value="&lt;%= util.HTMLFilter.filter(role) %>">

+&lt;/form>

+&lt;br>&lt;br>

+

+If you have configured this app for form-based authentication, you can log

+off by clicking

+&lt;a href='&lt;%= response.encodeURL("index.jsp?logoff=true") %>'>here&lt;/a>.

+This should cause you to be returned to the logon page after the redirect

+that is performed.

+

+&lt;/body>

+&lt;/html>

+</pre></body></html>

diff --git a/tomcat-uid/webapps/examples/jsp/security/protected/login.jsp b/tomcat-uid/webapps/examples/jsp/security/protected/login.jsp
new file mode 100644
index 0000000..dc7e50e
--- /dev/null
+++ b/tomcat-uid/webapps/examples/jsp/security/protected/login.jsp
@@ -0,0 +1,38 @@
+<!--

+ Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You under the Apache License, Version 2.0

+  (the "License"); you may not use this file except in compliance with

+  the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing, software

+  distributed under the License is distributed on an "AS IS" BASIS,

+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  See the License for the specific language governing permissions and

+  limitations under the License.

+-->

+<html>

+<head>

+<title>Login Page for Examples</title>

+<body bgcolor="white">

+<form method="POST" action='<%= response.encodeURL("j_security_check") %>' >

+  <table border="0" cellspacing="5">

+    <tr>

+      <th align="right">Username:</th>

+      <td align="left"><input type="text" name="j_username"></td>

+    </tr>

+    <tr>

+      <th align="right">Password:</th>

+      <td align="left"><input type="password" name="j_password"></td>

+    </tr>

+    <tr>

+      <td align="right"><input type="submit" value="Log In"></td>

+      <td align="left"><input type="reset"></td>

+    </tr>

+  </table>

+</form>

+</body>

+</html>

diff --git a/tomcat-uid/webapps/examples/jsp/security/protected/login.jsp.html b/tomcat-uid/webapps/examples/jsp/security/protected/login.jsp.html
new file mode 100644
index 0000000..94e16ef
--- /dev/null
+++ b/tomcat-uid/webapps/examples/jsp/security/protected/login.jsp.html
@@ -0,0 +1,40 @@
+<html><body><pre>

+&lt;!--

+ Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You under the Apache License, Version 2.0

+  (the "License"); you may not use this file except in compliance with

+  the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing, software

+  distributed under the License is distributed on an "AS IS" BASIS,

+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  See the License for the specific language governing permissions and

+  limitations under the License.

+-->

+&lt;html>

+&lt;head>

+&lt;title>Login Page for Examples&lt;/title>

+&lt;body bgcolor="white">

+&lt;form method="POST" action='&lt;%= response.encodeURL("j_security_check") %>' >

+  &lt;table border="0" cellspacing="5">

+    &lt;tr>

+      &lt;th align="right">Username:&lt;/th>

+      &lt;td align="left">&lt;input type="text" name="j_username">&lt;/td>

+    &lt;/tr>

+    &lt;tr>

+      &lt;th align="right">Password:&lt;/th>

+      &lt;td align="left">&lt;input type="password" name="j_password">&lt;/td>

+    &lt;/tr>

+    &lt;tr>

+      &lt;td align="right">&lt;input type="submit" value="Log In">&lt;/td>

+      &lt;td align="left">&lt;input type="reset">&lt;/td>

+    &lt;/tr>

+  &lt;/table>

+&lt;/form>

+&lt;/body>

+&lt;/html>

+</pre></body></html>