You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by lp...@apache.org on 2024/08/25 20:40:49 UTC

(shiro-site) branch main updated: bugfix: fixed javadoc links

This is an automated email from the ASF dual-hosted git repository.

lprimak pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shiro-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 2bd136125 bugfix: fixed javadoc links
2bd136125 is described below

commit 2bd13612594d318b0ba9d356d84598e10badfcd9
Author: lprimak <le...@flowlogix.com>
AuthorDate: Sun Aug 25 15:40:28 2024 -0500

    bugfix: fixed javadoc links
---
 src/site/assets/.htaccess             |  4 +++
 src/site/content/architecture.adoc    |  4 +--
 src/site/content/cachemanager.adoc    |  8 +++---
 src/site/content/caching.adoc         | 10 +++----
 src/site/content/testing.adoc         |  2 +-
 src/site/content/web.adoc             | 50 +++++++++++++++++------------------
 src/site/content/webapp-tutorial.adoc |  6 ++---
 7 files changed, 44 insertions(+), 40 deletions(-)

diff --git a/src/site/assets/.htaccess b/src/site/assets/.htaccess
index 9fb5c740e..3ecc52d2c 100644
--- a/src/site/assets/.htaccess
+++ b/src/site/assets/.htaccess
@@ -51,6 +51,10 @@ RedirectMatch /static/(.*)/tools/apidocs/(.*) /static/$1/shiro-tools/$2
 RedirectMatch /static/1.1.0(.*) /static/current$1
 RedirectMatch /static/1.0.0-incubating(.*) /static/current$1
 
+# Rediect Javadoc
+RedirectMatch /static/current/apidocs/shiro-(.*)/(.*) https://javadoc.io/doc/org.apache.shiro/shiro-$1/latest/$2
+RedirectMatch /static/current/apidocs/(.*) https://javadoc.io/doc/org.apache.shiro/shiro-core/latest/$1
+
 # latest
 RedirectMatch /static/current(.*) /static/2.0.0$1
 RedirectMatch /static/latest(.*) /static/2.0.0$1
diff --git a/src/site/content/architecture.adoc b/src/site/content/architecture.adoc
index 964217799..f20d37f0f 100644
--- a/src/site/content/architecture.adoc
+++ b/src/site/content/architecture.adoc
@@ -58,10 +58,10 @@ The `SessionManager` knows how to create and manage user `Session` lifecycles to
 ** *SessionDAO* (link:static/current/apidocs/org/apache/shiro/session/mgt/eis/SessionDAO.html[org.apache.shiro.session.mgt.eis.SessionDAO])
 The `SessionDAO` performs `Session` persistence (CRUD) operations on behalf of the `SessionManager`. This allows any data store to be plugged in to the Session Management infrastructure.
 
-* *CacheManager* (link:static/current/apidocs/org/apache/shiro/cache/CacheManager.html[org.apache.shiro.cache.CacheManager])
+* *CacheManager* (link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/CacheManager.html[org.apache.shiro.cache.CacheManager])
 The `CacheManager` creates and manages `Cache` instance lifecycles used by other Shiro components. Because Shiro can access many back-end data sources for authentication, authorization and session management, caching has always been a first-class architectural feature in the framework to improve performance while using these data sources. Any of the modern open-source and/or enterprise caching products can be plugged in to Shiro to provide a fast and efficient user-experience.
 
-* *Cryptography* (link:static/current/apidocs/org/apache/shiro/crypto/package-summary.html[org.apache.shiro.crypto.*])
+* *Cryptography* (link:static/current/apidocs/shiro-crypto-cipher/org/apache/shiro/crypto/cipher/package-summary.html[org.apache.shiro.crypto.cipher.*])
 Cryptography is a natural addition to an enterprise security framework. Shiro's `crypto` package contains easy-to-use and understand representations of crytographic Ciphers, Hashes (aka digests) and different codec implementations. All the classes in this package are carefully designed to be very easy to use and easy to understand. Anyone who has used Java's native cryptography support knows it can be a challenging animal to tame. Shiro's crypto APIs simplify the complicated Java mechani [...]
 
 * *Realms* (link:static/current/apidocs/org/apache/shiro/realm/Realm.html[org.apache.shiro.realm.Realm])
diff --git a/src/site/content/cachemanager.adoc b/src/site/content/cachemanager.adoc
index 0aac1efc8..7dba1e2e6 100644
--- a/src/site/content/cachemanager.adoc
+++ b/src/site/content/cachemanager.adoc
@@ -9,9 +9,9 @@
 
 Shiro has three important cache interfaces:
 
-* link:static/current/apidocs/org/apache/shiro/cache/CacheManager.html[`+CacheManager+`]
-* link:static/current/apidocs/org/apache/shiro/cache/Cache.html[`+Cache+`]
-* link:static/current/apidocs/org/apache/shiro/cache/CacheManagerAware.html[`+CacheManagerAware+`]
+* link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/CacheManager.html[`+CacheManager+`]
+* link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/Cache.html[`+Cache+`]
+* link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/CacheManagerAware.html[`+CacheManagerAware+`]
 
 A `+CacheManager+` returns `+Cache+` instances and various Shiro components use those `+Cache<+` instances to cache data as necessary.
 Any Shiro component that implements `+CacheManager+` will automatically receive a configured `+CacheManager+`, where it can be used to acquire `+Cache+` instances.
@@ -33,7 +33,7 @@ securityManager.cacheManager = $cacheManager
 # realms have been set with the cacheManager instance
 ----
 
-We have an out-of-the-box link:static/current/apidocs/org/apache/shiro/cache/ehcache/EhCacheManager.html[`+EhCacheManager+`] implementation, so you can use that today if you wanted.
+We have an out-of-the-box link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/ehcache/EhCacheManager.html[`+EhCacheManager+`] implementation, so you can use that today if you wanted.
 Otherwise, you can implement your own `+CacheManager+` (e.g. with Coherence, etc.) and configure it as above, and you’ll be good to go.
 
 == Authorization Cache Invalidation [[CacheManager-AuthorizationCacheInvalidation]]
diff --git a/src/site/content/caching.adoc b/src/site/content/caching.adoc
index 63094a876..5d7c1e185 100644
--- a/src/site/content/caching.adoc
+++ b/src/site/content/caching.adoc
@@ -21,12 +21,12 @@ end-user to configure any cache mechanism they prefer.
 
 Shiro has three important cache interfaces:
 
-* link:static/current/apidocs/org/apache/shiro/cache/CacheManager.html[`+CacheManager+`]
+* link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/CacheManager.html[`+CacheManager+`]
 - The primary Manager component for all caching, it returns `+Cache+`
 instances.
-* link:static/current/apidocs/org/apache/shiro/cache/Cache.html[`+Cache+`]
+* link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/Cache.html[`+Cache+`]
 - Maintains key/value pairs
-* link:static/current/apidocs/org/apache/shiro/cache/CacheManagerAware.html[`+CacheManagerAware+`]
+* link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/CacheManagerAware.html[`+CacheManagerAware+`]
 - Implemented by components wishing to receive and use a CacheManager
 instance
 
@@ -67,12 +67,12 @@ own.
 === `+MemoryConstrainedCacheManager+`
 
 The
-link:static/current/apidocs/org/apache/shiro/cache/MemoryConstrainedCacheManager.html[`+MemoryConstrainedCacheManager+`]
+link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/MemoryConstrainedCacheManager.html[`+MemoryConstrainedCacheManager+`]
 is a `+CacheManager+` implementation suitable for single-JVM production
 environments.
 It is not clustered/distributed, so if your application spans across more than one JVM (e.g. web app running on multiple web servers), and you want cache entries to be accessible across JVMs, you will need to use a distributed cache implement instead.
 
-The `+MemoryConstrainedCacheManager+` manages link:static/current/apidocs/org/apache/shiro/cache/MapCache.html[`+MapCache+`] instances, one `+MapCache+` instance per named cache.
+The `+MemoryConstrainedCacheManager+` manages link:static/current/apidocs/shiro-cache/org/apache/shiro/cache/MapCache.html[`+MapCache+`] instances, one `+MapCache+` instance per named cache.
 Each `+MapCache+` instance is backed by a Shiro link:static/current/apidocs/org/apache/shiro/util/SoftHashMap.html[`+SoftHashMap+`] which can auto-resize itself based on an application’s runtime memory constraints/needs (by leveraging JDK https://docs.oracle.com/javase/7/docs/api/java/lang/ref/SoftReference.html[`+SoftReference+`] instances).
 
 Because the `+MemoryConstrainedCacheManager+` can auto-resize itself
diff --git a/src/site/content/testing.adoc b/src/site/content/testing.adoc
index 5bce7be56..9dc3e3938 100644
--- a/src/site/content/testing.adoc
+++ b/src/site/content/testing.adoc
@@ -21,7 +21,7 @@ This means three basic things must always occur in order to support being able t
 . The `Subject` instance must be _bound_ to the currently executing thread.
 . After the thread is finished executing (or if the thread's execution results in a `Throwable`), the `Subject` must be _unbound_ to ensure that the thread remains 'clean' in any thread-pooled environment.
 
-Shiro has architectural components that perform this bind/unbind logic automatically for a running application. For example, in a web application, the root Shiro Filter performs this logic when link:++https://shiro.apache.org/static/current/apidocs/org/apache/shiro/web/servlet/AbstractShiroFilter.html#doFilterInternal(javax.servlet.ServletRequest,javax.servlet.ServletResponse,javax.servlet.FilterChain)++[filtering a request]. But as test environments and frameworks differ, we need to per [...]
+Shiro has architectural components that perform this bind/unbind logic automatically for a running application. For example, in a web application, the root Shiro Filter performs this logic when link:++https://shiro.apache.org/static/current/apidocs/shiro-web/org/apache/shiro/web/servlet/AbstractShiroFilter.html#doFilterInternal(javax.servlet.ServletRequest,javax.servlet.ServletResponse,javax.servlet.FilterChain)++[filtering a request]. But as test environments and frameworks differ, we n [...]
 
 [#Testing-TestSetup]
 == Test Setup
diff --git a/src/site/content/web.adoc b/src/site/content/web.adoc
index d9a98b075..c7e72e8e7 100644
--- a/src/site/content/web.adoc
+++ b/src/site/content/web.adoc
@@ -312,7 +312,7 @@ Finally, each filter is free to handle the response however it wants if its nece
 ====
 Being able to react to path specific configuration, i.e. the `[optional_configN]` part of a filter token, is a unique feature available to Shiro filters.
 
-If you want to create your own `javax.servlet.Filter` implementation that can also do this, make sure your filter subclasses link:static/current/apidocs/org/apache/shiro/web/filter/PathMatchingFilter.html[org.apache.shiro.web.filter.PathMatchingFilter].
+If you want to create your own `javax.servlet.Filter` implementation that can also do this, make sure your filter subclasses link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/PathMatchingFilter.html[org.apache.shiro.web.filter.PathMatchingFilter].
 ====
 
 ===== Available Filters
@@ -355,24 +355,24 @@ authc.loginUrl = /login.jsp
 ...
 ----
 
-The default Filter instances available automatically are defined by the link:static/current/apidocs/org/apache/shiro/web/filter/mgt/DefaultFilter.html[DefaultFilter enum] and the enum's `name` field is the name available for configuration. They are:
+The default Filter instances available automatically are defined by the link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/mgt/DefaultFilter.html[DefaultFilter enum] and the enum's `name` field is the name available for configuration. They are:
 
 |===
 |Filter Name |Class 
 
-|anon |link:static/current/apidocs/org/apache/shiro/web/filter/authc/AnonymousFilter.html[org.apache.shiro.web.filter.authc.AnonymousFilter] 
-|authc |link:static/current/apidocs/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html[org.apache.shiro.web.filter.authc.FormAuthenticationFilter] 
-|authcBasic |link:static/current/apidocs/org/apache/shiro/web/filter/authc/BasicHttpAuthenticationFilter.html[org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter] 
-|authcBearer |link:static/current/apidocs/org/apache/shiro/web/filter/authc/BearerHttpAuthenticationFilter.html[org.apache.shiro.web.filter.authc.BearerHttpAuthenticationFilter] 
-|invalidRequest |link:static/current/apidocs/org/apache/shiro/web/filter/InvalidRequestFilter.html[org.apache.shiro.web.filter.InvalidRequestFilter] 
-|logout |link:static/current/apidocs/org/apache/shiro/web/filter/authc/LogoutFilter.html[org.apache.shiro.web.filter.authc.LogoutFilter] 
-|noSessionCreation |link:static/current/apidocs/org/apache/shiro/web/filter/session/NoSessionCreationFilter.html[org.apache.shiro.web.filter.session.NoSessionCreationFilter] 
-|perms |link:static/current/apidocs/org/apache/shiro/web/filter/authz/PermissionsAuthorizationFilter.html[org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter] 
-|port |link:static/current/apidocs/org/apache/shiro/web/filter/authz/PortFilter.html[org.apache.shiro.web.filter.authz.PortFilter] 
-|rest |link:static/current/apidocs/org/apache/shiro/web/filter/authz/HttpMethodPermissionFilter.html[org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter] 
-|roles |link:static/current/apidocs/org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.html[org.apache.shiro.web.filter.authz.RolesAuthorizationFilter] 
-|ssl |link:static/current/apidocs/org/apache/shiro/web/filter/authz/SslFilter.html[org.apache.shiro.web.filter.authz.SslFilter] 
-|user |link:static/current/apidocs/org/apache/shiro/web/filter/authc/UserFilter.html[org.apache.shiro.web.filter.authc.UserFilter] 
+|anon |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authc/AnonymousFilter.html[org.apache.shiro.web.filter.authc.AnonymousFilter]
+|authc |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html[org.apache.shiro.web.filter.authc.FormAuthenticationFilter]
+|authcBasic |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authc/BasicHttpAuthenticationFilter.html[org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter]
+|authcBearer |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authc/BearerHttpAuthenticationFilter.html[org.apache.shiro.web.filter.authc.BearerHttpAuthenticationFilter]
+|invalidRequest |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/InvalidRequestFilter.html[org.apache.shiro.web.filter.InvalidRequestFilter]
+|logout |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authc/LogoutFilter.html[org.apache.shiro.web.filter.authc.LogoutFilter]
+|noSessionCreation |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/session/NoSessionCreationFilter.html[org.apache.shiro.web.filter.session.NoSessionCreationFilter]
+|perms |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authz/PermissionsAuthorizationFilter.html[org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter]
+|port |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authz/PortFilter.html[org.apache.shiro.web.filter.authz.PortFilter]
+|rest |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authz/HttpMethodPermissionFilter.html[org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter]
+|roles |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.html[org.apache.shiro.web.filter.authz.RolesAuthorizationFilter]
+|ssl |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authz/SslFilter.html[org.apache.shiro.web.filter.authz.SslFilter]
+|user |link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authc/UserFilter.html[org.apache.shiro.web.filter.authc.UserFilter]
 |===
 
 == Enabling and Disabling Filters
@@ -383,13 +383,13 @@ But a new feature added in Shiro 1.2 is the ability to enable or disable filters
 
 This is a powerful concept because it is often more convenient to enable or disable a filter based on certain requirements than to change the static filter chain definition, which would be permanent and inflexible.
 
-Shiro accomplishes this via its link:static/current/apidocs/org/apache/shiro/web/servlet/OncePerRequestFilter.html[OncePerRequestFilter] abstract parent class. All of Shiro's out-of-the-box Filter implementations subclass this one and therefore are able to be enabled or disabled without removing them from the filter chain. You can subclass this class for your own filter implementations if you need this functionality as well*.
+Shiro accomplishes this via its link:static/current/apidocs/shiro-web/org/apache/shiro/web/servlet/OncePerRequestFilter.html[OncePerRequestFilter] abstract parent class. All of Shiro's out-of-the-box Filter implementations subclass this one and therefore are able to be enabled or disabled without removing them from the filter chain. You can subclass this class for your own filter implementations if you need this functionality as well*.
 
 *https://issues.apache.org/jira/browse/SHIRO-224[SHIRO-224] will hopefully enable this feature for any filter, not just those subclassing `OncePerRequestFilter`. If this is important to you, please vote for the issue.
 
 === General Enabling/Disabling
 
-The link:static/current/apidocs/org/apache/shiro/web/servlet/OncePerRequestFilter.html[OncePerRequestFilter] (and all of its subclasses) supports enabling/disabling across all requests as well as on a per-request basis.
+The link:static/current/apidocs/shiro-web/org/apache/shiro/web/servlet/OncePerRequestFilter.html[OncePerRequestFilter] (and all of its subclasses) supports enabling/disabling across all requests as well as on a per-request basis.
 
 General enabling or disabling of a filter for all requests is done by setting its `enabled` property to true or false. The default setting is `true` since most filters inherently need to execute if they are configured in a chain.
 
@@ -419,7 +419,7 @@ This method defaults to returning the value of the `enabled` property, which is
 
 === Path-specific Enabling/Disabling
 
-Shiro's link:static/current/apidocs/org/apache/shiro/web/filter/PathMatchingFilter.html[PathMatchingFilter] (a subclass of `OncePerRequestFilter` has the ability to react to configuration based on a _specific path_ being filtered. This means you can enable or disable a filter based on the path and the path-specific configuration in addition to the incoming request and response.
+Shiro's link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/PathMatchingFilter.html[PathMatchingFilter] (a subclass of `OncePerRequestFilter` has the ability to react to configuration based on a _specific path_ being filtered. This means you can enable or disable a filter based on the path and the path-specific configuration in addition to the incoming request and response.
 
 If you need to be able to react to the matching path and the path-specific configuration to determine if a filter is enabled or disabled, instead of overriding `OncePerRequestFilter` `isEnabled(request,response)` method, you would override the `PathMatchingFilter` `isEnabled(request,response,path,pathConfig)` method instead.
 
@@ -470,7 +470,7 @@ URL rewriting for `jsessionid` is defined in section "7.1.3" of the Java Servlet
 
 === HTTP Strict Transport Security (HSTS)
 
-The link:static/current/apidocs/org/apache/shiro/web/filter/authz/SslFilter.html[SslFilter] (and all of its subclasses) supports enabling/disabling HTTP Strict Transport Security (HSTS).
+The link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authz/SslFilter.html[SslFilter] (and all of its subclasses) supports enabling/disabling HTTP Strict Transport Security (HSTS).
 
 For example, in shiro.ini:
 
@@ -523,7 +523,7 @@ The word 'Native' here means that Shiro's own enterprise session management impl
 
 ==== `DefaultWebSessionManager`
 
-To enable native session management for your web application, you will need to configure a native web-capable session manager to override the default servlet container-based one. You can do that by configuring an instance of link:static/current/apidocs/org/apache/shiro/web/session/mgt/DefaultWebSessionManager.html[`DefaultWebSessionManager`] on Shiro's `SecurityManager`. For example, in `shiro.ini`:
+To enable native session management for your web application, you will need to configure a native web-capable session manager to override the default servlet container-based one. You can do that by configuring an instance of link:static/current/apidocs/shiro-web/org/apache/shiro/web/session/mgt/DefaultWebSessionManager.html[`DefaultWebSessionManager`] on Shiro's `SecurityManager`. For example, in `shiro.ini`:
 
 *shiro.ini native web session management*
 
@@ -549,7 +549,7 @@ After configuring the `DefaultWebSessionManager` instance, session timeout is co
 The `DefaultWebSessionManager` supports two web-specific configuration properties:
 
 * `sessionIdCookieEnabled` (a boolean)
-* `sessionIdCookie`, a link:static/current/apidocs/org/apache/shiro/web/servlet/Cookie.html[Cookie] instance.
+* `sessionIdCookie`, a link:static/current/apidocs/shiro-web/org/apache/shiro/web/servlet/Cookie.html[Cookie] instance.
 
 [INFO]
 .Cookie as a template
@@ -559,7 +559,7 @@ The `sessionIdCookie` property is essentially a template - you configure the `Co
 
 ====== Session Cookie Configuration
 
-The DefaultWebSessionManager's `sessionIdCookie` default instance is a link:static/current/apidocs/org/apache/shiro/web/servlet/SimpleCookie.html[`SimpleCookie`]. This simple implementation allows JavaBeans-style property configuration for all the relevant properties you would want to configure on an http Cookie.
+The DefaultWebSessionManager's `sessionIdCookie` default instance is a link:static/current/apidocs/shiro-web/org/apache/shiro/web/servlet/SimpleCookie.html[`SimpleCookie`]. This simple implementation allows JavaBeans-style property configuration for all the relevant properties you would want to configure on an http Cookie.
 
 For example, you could set the Cookie domain:
 
@@ -570,7 +570,7 @@ For example, you could set the Cookie domain:
 securityManager.sessionManager.sessionIdCookie.domain = foo.com
 ----
 
-See the link:static/current/apidocs/org/apache/shiro/web/servlet/SimpleCookie.html[SimpleCookie JavaDoc] for additional properties.
+See the link:static/current/shiro-web/apidocs/org/apache/shiro/web/servlet/SimpleCookie.html[SimpleCookie JavaDoc] for additional properties.
 
 The cookie's default name is `JSESSIONID` in accordance with the servlet specification. Additionally, Shiro's cookie supports the https://en.wikipedia.org/wiki/HTTP_cookie#HttpOnly_cookie[`HttpOnly`] and https://en.wikipedia.org/wiki/HTTP_cookie#Same-site_cookie[`SameSite`] flags. The `sessionIdCookie` sets `HttpOnly` to `true` and `SameSite` to `LAX` by default for extra security.
 
@@ -626,7 +626,7 @@ SecurityUtils.getSubject().login(token);
 
 === Form-based Login
 
-For web applications, the `authc` filter is by default a link:static/current/apidocs/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html[`FormAuthenticationFilter`]. This supports reading the 'rememberMe' boolean as a form/request parameter. By default, it expects the request param to be named `rememberMe`. Here is an example shiro.ini config supporting this:
+For web applications, the `authc` filter is by default a link:static/current/apidocs/shiro-web/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html[`FormAuthenticationFilter`]. This supports reading the 'rememberMe' boolean as a form/request parameter. By default, it expects the request param to be named `rememberMe`. Here is an example shiro.ini config supporting this:
 
 [source,ini]
 ----
@@ -680,7 +680,7 @@ securityManager.rememberMeManager.cookie.maxAge = blah
 ...
 ----
 
-See the link:static/current/apidocs/org/apache/shiro/web/mgt/CookieRememberMeManager.html[`CookieRememberMeManager`] and the supporting link:static/current/apidocs/src-html/org/apache/shiro/web/servlet/SimpleCookie.html[`SimpleCookie`] JavaDoc for configuration properties.
+See the link:static/current/apidocs/shiro-web/org/apache/shiro/web/mgt/CookieRememberMeManager.html[`CookieRememberMeManager`] and the supporting link:static/current/apidocs/src-html/org/apache/shiro/web/servlet/SimpleCookie.html[`SimpleCookie`] JavaDoc for configuration properties.
 
 === Custom `RememberMeManager`
 
diff --git a/src/site/content/webapp-tutorial.adoc b/src/site/content/webapp-tutorial.adoc
index 52af113cb..5c12dcbb3 100644
--- a/src/site/content/webapp-tutorial.adoc
+++ b/src/site/content/webapp-tutorial.adoc
@@ -468,7 +468,7 @@ shiro.loginUrl = /login.jsp
 
 This is a special configuration directive that tells Shiro "For any of Shiro's https://shiro.apache.org/web.html#Web-DefaultFilters[default filters] that have a `loginUrl` property, I want that property value to be set to `/login.jsp`."
 
-This allows Shiro's default `authc` filter (by default, a https://shiro.apache.org/static/current/apidocs/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html[`FormAuthenticationFilter`]) to know about the login page. This is necessary for the `FormAuthenticationFilter` to work correctly.
+This allows Shiro's default `authc` filter (by default, a https://shiro.apache.org/static/current/apidocs/web/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html[`FormAuthenticationFilter`]) to know about the login page. This is necessary for the `FormAuthenticationFilter` to work correctly.
 
 ==== The `[urls]` section
 
@@ -502,7 +502,7 @@ The `step3` branch contains a new `src/main/webapp/login.jsp` page. This is a si
 . There is a `password` form field. The Shiro `authc` filter will automatically look for a `password` request parameter during login submission.
 . There is a `rememberMe` checkbox whose 'checked' state can be a 'truthy' value (`true`, `t`, `1`, `enabled`, `y`, `yes`, or `on`).
 
-Our login.jsp form just uses the default `username`, `password`, and `rememberMe` form field names. These names are configurable if you wish to change them - see the https://shiro.apache.org/static/current/apidocs/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html[`FormAuthenticationFilter` JavaDoc] for information.
+Our login.jsp form just uses the default `username`, `password`, and `rememberMe` form field names. These names are configurable if you wish to change them - see the https://shiro.apache.org/static/current/apidocs/web/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.html[`FormAuthenticationFilter` JavaDoc] for information.
 
 === Step 3c: Run the webapp
 
@@ -761,7 +761,7 @@ The `&lt;shiro:lacksRole&gt;` tag will only display the contents if the current
 
 An exercise left to the reader (not a defined step) is to create a new section of the website and restrict URL access to that section of the website based on what role is assigned to the current user.
 
-Hint: Create a https://shiro.apache.org/web.html#Web-FilterChainDefinitions[filter chain definition] for that new part of the webapp using the https://shiro.apache.org/static/current/apidocs/org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.html[`roles` filter]
+Hint: Create a https://shiro.apache.org/web.html#Web-FilterChainDefinitions[filter chain definition] for that new part of the webapp using the https://shiro.apache.org/static/current/apidocs/web/org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.html[`roles` filter]
 
 === Step 6d: Run the webapp