Skip to content

Commit dc88b7d

Browse files
authored
SAK-47063 Content secured access files should never be searchable (sakaiproject#10371)
https://sakaiproject.atlassian.net/browse/SAK-47063
1 parent 69aebf0 commit dc88b7d

File tree

2 files changed

+14
-20
lines changed

2 files changed

+14
-20
lines changed

kernel/kernel-impl/src/main/java/org/sakaiproject/entity/impl/ReferenceComponent.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.sakaiproject.entity.api.ResourceProperties;
3333
import org.sakaiproject.user.api.User;
3434
import org.sakaiproject.user.api.UserDirectoryService;
35+
import org.sakaiproject.util.BaseResourceProperties;
3536

3637
/**
3738
* <p>
@@ -184,16 +185,14 @@ public String getContext()
184185
*
185186
* @return A ResourcesProperties object found (or constructed) for this reference.
186187
*/
187-
public ResourceProperties getProperties()
188-
{
188+
public ResourceProperties getProperties() {
189189
ResourceProperties props = null;
190190

191-
if (m_service != null)
192-
{
191+
if (m_service != null) {
193192
props = m_service.getEntityResourceProperties(this);
194193
}
195194

196-
return props;
195+
return (props != null) ? props : new BaseResourceProperties();
197196
}
198197

199198
/**

search/search-impl/impl/src/java/org/sakaiproject/search/component/adapter/contenthosting/ContentHostingContentProducer.java

+10-15
Original file line numberDiff line numberDiff line change
@@ -630,24 +630,19 @@ public boolean isForIndex(String ref)
630630
return true;
631631
}
632632

633-
public boolean canRead(String ref)
634-
{
635-
log.debug("canRead(" + ref);
636-
try
637-
{
633+
public boolean canRead(String ref) {
634+
log.debug("Check if resource is allowed to be read [{}]", ref);
635+
try {
638636
Reference reference = entityManager.newReference(ref);
639-
contentHostingService.checkResource(reference.getId());
640-
return true;
641-
}
642-
catch (Exception ex)
643-
{
644-
if (log.isDebugEnabled())
645-
{
646-
log.debug("Current user cannot read ref: " + ref, ex);
637+
if (!Boolean.TRUE.toString().equalsIgnoreCase(reference.getProperties().get(ResourceProperties.PROP_SECURED).toString())) {
638+
contentHostingService.checkResource(reference.getId());
639+
return true;
647640
}
648-
649-
return false;
641+
} catch (Exception e) {
642+
log.debug("Failed to check if resource can be read [{}]: {}", ref, e.toString());
650643
}
644+
log.debug("Resource is not allowed to be read [{}]", ref);
645+
return false;
651646
}
652647

653648
public Map<String, String[]> getCustomProperties(String ref)

0 commit comments

Comments
 (0)